我使用getJSON
从服务器端获取结果,但遇到了浏览器缓存问题。我希望缓存为false。就在我调用getJSON
之前,我试着使用它。
$.ajaxSetup({
cache: false
})
但是我没有得到预期的结果。它仍然显示旧的结果。
我还确定了一些其他的解决方案,比如使用.ajax
,但我真的不想使用它。
发布于 2012-12-03 16:25:48
您的代码只需要一个触发器就可以启用它。
这将允许您在以后的所有ajax中禁用缓存
$(document).ready(function() {
$.ajaxSetup({ cache: false });
});
希望它能有所帮助:)
发布于 2013-09-19 02:54:50
您可以使用以下两种方法之一,这将全局禁用缓存:
$(document).ready(function() {
$.ajaxSetup({ cache: false });
});
或者,不是$.getJSON
,而是仅针对此类请求禁用缓存:
$.ajax({
cache: false,
url: "/path/to.json",
dataType: "json",
success: function(data) {
...
}
});
发布于 2015-08-12 01:52:29
semente和bonesnatch的答案是正确的,但是如果你想使用$.getJSON和其他地方利用它的缓存(你不想把所有调用的缓存设置为false ),但是你想只为一个调用破坏缓存,你可以在$.getJSON()的data属性中注入一个时间戳。通过将唯一值添加到请求的查询字符串,请求将始终是唯一的,并且不会被浏览器缓存-您将始终获得最新的数据。
长版本:
var ts = new Date().getTime();
var data = {_: ts};
var url = '/some/path.json';
$.getJSON(url, data);
所有功能都在一个版本中:
$.getJSON('/some/path', {_: new Date().getTime()});
这两种方法都会产生以下请求:
/some/path.json?_=1439315011130
其中,末尾的数字是代码被调用时刻的时间戳,因此将始终是唯一的。
https://stackoverflow.com/questions/13391563
复制相似问题