Ajax缓存:false不起作用

时间:2011-09-18 09:18:29

标签: jquery ajax caching google-chrome

我的ajax请求已将缓存设置为false,但Chrome仍会偶尔缓存它,因此当我点击后退按钮时,我会获得缓存数据。我已经尝试在URL的末尾添加日期/时间/数学随机参数,但没有任何运气。有没有其他方法可以让它从不缓存?

由于

2 个答案:

答案 0 :(得分:1)

将缓存设置为false会在网址中添加一个随机参数,因此您自己进行此操作是重复的。

阻止缓存的唯一原因是它永远不会是两次相同的URL。

不是使ajax数据过期,而是使页面本身失效。当页面重新加载时,它将自动使数据到期。

您还可以尝试向页面发送一些事件,以检测它是否重新出现并清除数据。

PS。我讨厌这样做的页面,我从来没有回到那样的网站,所以我希望你有一个非常有针对性的观众。

答案 1 :(得分:0)

你确定它是chrome正在进行缓存而不是webserver。从它的外观来看,你正在做正确的事情来避免缓存。我建议在标题中设置cache-control属性。根据您的服务器端脚本语言找到正确的方法来做同样的事情。

JSP:response.setHeader("Cache-Control", "no-cache");

PHP:

  <?php header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
  header("Cache-Control: no-store, no-cache, must-revalidate");
  header("Cache-Control: post-check=0, pre-check=0", false);
  header("Pragma: no-cache");  `