是否有另一种方法来禁用缓存时获取脚本
Is there another way to disable cache when fetching script?
我用这个来获取脚本;
$.getScript("http://www.example.org/");
但是,我不希望它被缓存。意味着如果我再次使用getScript,脚本应该再次获取它。这个在理论上可行;
$.getScript("http://www.example.org/?" + Math.random());
但实际上,它不是。因为"?"在远程站点url上被禁用,所以我的问题是,有没有其他方法告诉浏览器不缓存?
根据需要重新创建函数:
(function () {
$.getScript = function(url, callback) {
$.ajax({
type: "GET",
url: url,
success: callback,
dataType: "script",
cache: false
});
};
})();
现在当你调用像
这样的函数时它将不再缓存$.getScript('script.js', function()
{
// non cached script.js
});
远端站点不能禁用"http://www.example.org/?" + Math.random()
的有效性以防止缓存。
"?" + Math.random()
的目的是创建一个不在本地浏览器缓存中的唯一URL。这是本地浏览器做出的缓存决定,对于本地浏览器缓存,远程站点是否忽略URL的"?" + Math.random()
部分并不重要。
仅供参考,另一种解决缓存的方法是让您的服务器在检索此脚本时返回适当的缓存头,指示浏览器永远不要缓存此文件
相关文章:
- 获取所有缓存资源文件的本地路径
- 获取推文并使用jquery缓存它们
- 使用 createJS 获取对容器缓存版本的引用
- AngularJS :从$http获取缓存结果
- 如何从缓存中获取图像,css,js(http状态为200(缓存)而不是304)
- jQuery 在缓存中预加载图像并在其他函数继续之前获取原始图像大小
- 如何使用requireJs缓存获取调用的结果
- 获取使用 HTML5 应用程序缓存时下载的资源计数
- JSONP 从 WCF 服务获取缓存响应时出现问题
- 如何避免要求客户端清除浏览器缓存以获取最新的Javascript更改
- HTML5应用程序缓存,获取客户端中缓存文件的列表
- IE在添加到onclick处理程序时从缓存中获取脚本(动态添加)
- 如何始终获取CSS而不使用缓存副本
- 强制Ajax获取缓存版本
- 在Select2中获取和缓存结果
- 如何告诉浏览器从缓存中删除文件并获取新部署的文件
- 是否有另一种方法来禁用缓存时获取脚本
- Javascript service worker:从缓存中获取资源,同时更新它
- 获取图像或其标题没有缓存跨域
- 动态改变jquery对话框的标题,不从下拉菜单中获取缓存数据