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

Bab*_*ker 9 javascript ajax caching

如何防止浏览器缓存Ajax结果?只有在清除了浏览器数据后,我才有事件触发Ajax脚本显示结果.

在IE6和Firefox 3.0.10中测试过

Mat*_*hen 13

随机URL工作,但它是一种黑客攻击.HTTP内置的解决方案应该可行.尝试使用此处指示的解决方案.基本上,设置标题:

"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)
Run Code Online (Sandbox Code Playgroud)


Ita*_*man 11

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

例如,如果将Ajax请求发送到" http://www.xyz.com/a ",则在末尾添加一个随机字符串:" http://www.xyz.com/a?q=39058459ieutm39 "

  • ...你可以在javascript中生成随机字符串,例如:Math.floor(Math.random()*1000000) (3认同)
  • 此解决方案有一个严重的缺点:如果您检索许多文件,它将填充缓存.在我的情况下,我想保留缓存以供离线使用,所以我不想用旧版本的请求填充它. (2认同)

Mit*_*dor 9

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

完整的代码示例如下:

$.ajaxSetup({cache: false});
Run Code Online (Sandbox Code Playgroud)