如何防止浏览器中的Ajax / javascript结果缓存?

时间:2009-06-04 06:15:17

标签: javascript ajax caching

如何防止浏览器缓存Ajax结果?只有当浏览器数据被清除时,我才有事件触发Ajax脚本显示结果。

在IE6和Firefox 3.0.10中测试

5 个答案:

答案 0 :(得分:13)

随机网址有效,但它有点像黑客。 HTTP内置的解决方案应该可行。尝试使用解决方案indicated here。基本上,设置标题:

"Pragma":            "no-cache",
"Cache-Control":     "no-store, no-cache, must-revalidate, post-check=0, pre-check=0",
"Expires":           0,
"Last-Modified":     new Date(0), // January 1, 1970
"If-Modified-Since": new Date(0)

答案 1 :(得分:11)

将随机查询字符串添加到您要发送的URL。

E.g。如果Ajax请求被发送到“http://www.xyz.com/a” 然后在最后添加一个随机字符串:“http://www.xyz.com/a?q=39058459ieutm39

答案 2 :(得分:9)

我使用了jQuery {cache:false}方法,它就像一个魅力。

完整的代码示例如下:

$.ajaxSetup({cache: false});

答案 3 :(得分:4)

我知道有两种技术。

  • 将某种查询字符串添加到AJAX请求URL,以使其始终唯一。毫秒时间戳(可能与随机值组合)适用于此
  • 在AJAX响应上设置HTTP缓存控制标头,以便浏览器不缓存它

答案 4 :(得分:4)

使用jQuery可以设置全局ajax设置:{cache:false}。在jquery ajax docs

中查看