一尘不染

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

javascript

好像我使用加载动态内容$.get(),结果缓存在浏览器中。

在QueryString中添加一些随机字符串似乎可以解决此问题(我使用new Date().toString()),但这听起来像是一种hack。

还有其他方法可以做到这一点吗?或者,如果唯一字符串是实现此目标的唯一方法,则除之外还有其他建议new Date()吗?


阅读 321

收藏
2020-04-25

共1个答案

一尘不染

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

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

编辑: 这个答案已经好几年了。它仍然有效(因此我没有删除它),但是 现在有更好/更干净的方法可以实现此目的
。我的首选方法是这种方法,但是如果您想在页面生命周期内为 每个请求禁用缓存,此答案也很有用。

2020-04-25