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