是否有其他方法可以在获取脚本时禁用缓存?

时间:2015-08-31 04:03:27

标签: javascript jquery

我用它来获取脚本;

$.getScript("http://www.example.org/");

但是,我不希望它被缓存。意味着如果我再次使用getScript,脚本应该再次获取它。

这个在理论上起作用;

$.getScript("http://www.example.org/?" + Math.random());

但实际上,事实并非如此。因为“?”在远程站点网址上被禁用,所以我的问题是,是否还有其他方法告诉浏览器不缓存?

2 个答案:

答案 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()部分并不重要。

仅供参考,解决缓存问题的另一种方法是,当检索到此脚本时,服务器会返回正确的缓存标头,指示浏览器永远不会缓存此文件。