我用它来获取脚本;
$.getScript("http://www.example.org/");
但是,我不希望它被缓存。意味着如果我再次使用getScript,脚本应该再次获取它。
这个在理论上起作用;
$.getScript("http://www.example.org/?" + Math.random());
但实际上,事实并非如此。因为“?”在远程站点网址上被禁用,所以我的问题是,是否还有其他方法告诉浏览器不缓存?
答案 0 :(得分:2)
根据您的需要重新创建功能:
votesPerDay
现在,当您调用
这样的函数时,它将不再缓存(function () {
$.getScript = function(url, callback) {
$.ajax({
type: "GET",
url: url,
success: callback,
dataType: "script",
cache: false
});
};
})();
答案 1 :(得分:0)
远程站点无法禁用"http://www.example.org/?" + Math.random()
的有效性以防止缓存。
"?" + Math.random()
的要点是创建一个不在本地浏览器缓存中的唯一URL。是本地浏览器做出此缓存决策,对于本地浏览器缓存,远程站点是否忽略URL的"?" + Math.random()
部分并不重要。
仅供参考,解决缓存问题的另一种方法是,当检索到此脚本时,服务器会返回正确的缓存标头,指示浏览器永远不会缓存此文件。