微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

防止浏览器缓存 AJAX 调用结果

如何解决防止浏览器缓存 AJAX 调用结果

我使用new Date().getTime(),这将避免冲突,除非您在同一毫秒内发生多个请求:

$.get('/getdata?_=' + new Date().getTime(), function(data) {
    console.log(data); 
});

这个答案已经有好几年了。它仍然有效(因此我没有删除它),但 。我更喜欢这种方法

JQuery 的 $.get() 将缓存结果。代替

$.get("myurl", myCallback)

您应该使用 $.ajax,这将允许您关闭缓存:

$.ajax({url: "myurl", success: myCallback, cache: false});

但是如果您想在页面的生命周期内禁用 _每个_请求的缓存,这个答案也很有用。

以下将阻止所有未来的 AJAX 请求被缓存,无论您使用哪种 jQuery 方法($.get、$.ajax 等)

$.ajaxSetup({ cache: false });

解决方法

看起来如果我使用 加载动态内容$.get(),结果会缓存在浏览器中。

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

有没有其他方法可以实现这一目标?或者,如果唯一的字符串是实现这一目标的唯一方法,除了new Date()?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。