我getJSON
用来从服务器端获取结果,但面临浏览器缓存问题。我希望缓存为假。我在getJSON
致电之前尝试使用此功能。
$.ajaxSetup({
cache: false
})
但是我没有得到预期的结果。它仍然显示旧结果。
我还确定了其他解决方案,例如使用,.ajax
但我真的不想使用它。
Answers:
您的代码只需要一个触发器就可以启用。
这将允许您在以后的所有ajax中禁用缓存
$(document).ready(function() {
$.ajaxSetup({ cache: false });
});
希望能帮助到你 :)
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
其中末尾的数字是代码被调用时的时间戳,因此将始终是唯一的。