首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在jQuery中设置getJSON缓存为假?

如何在jQuery中设置getJSON缓存为假?
EN

Stack Overflow用户
提问于 2012-11-15 12:25:23
回答 3查看 67.3K关注 0票数 82

我使用getJSON从服务器端获取结果,但遇到了浏览器缓存问题。我希望缓存为false。就在我调用getJSON之前,我试着使用它。

代码语言:javascript
复制
 $.ajaxSetup({
                cache: false
            })

但是我没有得到预期的结果。它仍然显示旧的结果。

我还确定了一些其他的解决方案,比如使用.ajax,但我真的不想使用它。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-03 16:25:48

您的代码只需要一个触发器就可以启用它。

这将允许您在以后的所有ajax中禁用缓存

代码语言:javascript
复制
$(document).ready(function() {
  $.ajaxSetup({ cache: false });
});

希望它能有所帮助:)

票数 131
EN

Stack Overflow用户

发布于 2013-09-19 02:54:50

您可以使用以下两种方法之一,这将全局禁用缓存:

代码语言:javascript
复制
$(document).ready(function() {
  $.ajaxSetup({ cache: false });
});

或者,不是$.getJSON,而是仅针对此类请求禁用缓存:

代码语言:javascript
复制
$.ajax({
    cache: false,
    url: "/path/to.json",
    dataType: "json",
    success: function(data) {
        ...
    }
});
票数 85
EN

Stack Overflow用户

发布于 2015-08-12 01:52:29

semente和bonesnatch的答案是正确的,但是如果你想使用$.getJSON和其他地方利用它的缓存(你不想把所有调用的缓存设置为false ),但是你想只为一个调用破坏缓存,你可以在$.getJSON()的data属性中注入一个时间戳。通过将唯一值添加到请求的查询字符串,请求将始终是唯一的,并且不会被浏览器缓存-您将始终获得最新的数据。

长版本:

代码语言:javascript
复制
var ts = new Date().getTime();
var data = {_: ts};
var url = '/some/path.json';

$.getJSON(url, data);

所有功能都在一个版本中:

代码语言:javascript
复制
$.getJSON('/some/path', {_: new Date().getTime()});

这两种方法都会产生以下请求:

代码语言:javascript
复制
/some/path.json?_=1439315011130 

其中,末尾的数字是代码被调用时刻的时间戳,因此将始终是唯一的。

票数 51
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13391563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档