Ajax Load - 如何强制加载

时间:2013-10-03 15:04:27

标签: javascript jquery ajax

我正在尝试加载页面并将其放在div中。

代码:

 $("#test").load("page.php");

问题是一旦加载,有时当我重新执行这个脚本时,似乎文件'page.php'不是真的重新加载,似乎这个文件保存在缓存中或类似的东西。

这真的是一个问题,因为我在这个文件中有一个 PHP 请求它没有执行它。

3 个答案:

答案 0 :(得分:4)

浏览器正在缓存请求。它认为它知道它将得到的结果,因此它不会发送请求。

要解决此问题,请在网址末尾添加动态get参数。这将欺骗浏览器每次都期待新的东西。

这是一个示例代码:

$("#test").load("page.php?v=" + Math.random());

答案 1 :(得分:3)

您可以强制不将其缓存在ajaxSetup中,并在不需要时将其重置。 .load只是一个ajax调用,cache默认为true。

$.ajaxSetup ({
    cache: false
});

答案 2 :(得分:2)

这是一个缓存问题。您可以更改ajaxsetup,或使用随机字符串执行某些操作。

缓存发生的原因是因为您请求两次相同的URL。它已经取得了结果,所以它只是获取缓存的价值。简单的诀窍是随机添加一些东西:

$("#test").load("page.php?_"+Math.random());

我使用下划线,因为它不会覆盖任何其他get值(jQuery以相同的方式执行)