防止jQueryajax调用结果的浏览器缓存

防止jQueryajax调用结果的浏览器缓存

如果我使用$.get(),结果在浏览器中缓存。

在QueryString中添加一些随机字符串似乎可以解决这个问题(我使用new Date().toString()),但这感觉就像一次黑客攻击。

还有其他方法可以做到这一点吗?或者,如果唯一的字符串是实现这一目标的唯一途径,那么除了new Date()?


噜噜哒
浏览 613回答 3
3回答

缥缈止盈

我用new Date().getTime(),除非在同一毫秒内有多个请求发生,否则将避免冲突:$.get('/getdata?_=' + new Date().getTime(), function(data) {     console.log(data); });编辑:这个答案已经有好几年了。它仍然有效(因此我没有删除它),但是现在有更好/更清洁的方法来实现这一点。..我的偏好是这,这个方法,但是这,这个如果要禁用缓存,则答案也很有用。每一,每个在页的生存期内请求。

Helenr

无论您使用哪种jQuery方法($.get、$.ajax等),以下内容都将阻止所有未来的Ajax请求被缓存。$.ajaxSetup({ cache: false });

侃侃尔雅

jQuery的$.get()将缓存结果。而不是$.get("myurl", myCallback)您应该使用$.ajax,这将允许您关闭缓存:$.ajax({url: "myurl", success: myCallback, cache: false});
打开App,查看更多内容
随时随地看视频慕课网APP