Ajax Load - 如何强制加载

12 浏览
0 Comments

Ajax Load - 如何强制加载

我正在尝试加载一个页面并将其放置在一个div中。\n代码:\n$(\"#test\").load(\"page.php\");\n问题是,一旦加载完成,有时当我重新执行这个脚本时,似乎文件\'page.php\'并没有真正重新加载,看起来这个文件被保留在缓存中或类似的地方。\n这真的是个问题,因为我在这个文件中有一个PHP请求,它没有被执行。

0
0 Comments

Ajax Load - 强制加载的原因是因为缓存问题。解决方法可以通过更改ajaxsetup或添加随机字符串来解决。

缓存问题的原因是因为你两次请求相同的URL。它已经获取了结果,并且只是获取了缓存的值。一个简单的技巧是添加一些随机值:

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

我使用下划线是因为它不会覆盖任何其他的获取值(jQuery也是以类似的方式做)。

为了我的利益,为什么其他帖子会得到赞,而我没有?我没有看到任何比我的回复更好的信息。为了我的未来帖子,我做错了什么?

0
0 Comments

问题:Ajax加载 - 如何强制加载

原因:`.load`方法是一个Ajax调用,默认情况下`cache`被设置为`true`,会导致浏览器缓存Ajax请求的结果。因此,当需要强制加载Ajax内容时,需要解决这个默认的缓存设置。

解决方法:可以通过在`ajaxSetup`中设置`cache`为`false`来强制不缓存Ajax请求的结果,并在不需要强制加载时将其重置回去。

$.ajaxSetup({
    cache: false
});

这样,当使用`.load`方法进行Ajax加载时,就可以强制加载内容,而不会受到浏览器缓存的影响。

0
0 Comments

浏览器正在缓存请求。它认为它知道将得到的结果,所以不发送请求。为了解决这个问题,可以在URL的末尾添加一个动态的get参数。这将欺骗浏览器,让它每次都期望得到新的内容。以下是一个示例代码:

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

0