1

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

代码 :

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

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

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

4

3 回答 3

4

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

get要解决此问题,请在 url 的末尾添加一个动态参数。这将诱使浏览器每次都期待新的东西。

这是一个示例代码:

$("#test").load("page.php?v=" + Math.random());
于 2013-10-03T15:06:25.457 回答
3

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

$.ajaxSetup ({
    cache: false
});
于 2013-10-03T15:07:21.140 回答
2

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

缓存发生的原因是您两次请求相同的 url。它已经获取了那个结果,所以它只是获取缓存的值。简单的技巧是随机添加一些东西:

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

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

于 2013-10-03T15:07:46.313 回答