我使用getScript动态加载我的插件:
$.getScript('js/code.photoswipe.jquery-3.0.4.min.js', function () {
//do magic
});
Run Code Online (Sandbox Code Playgroud)
如何禁用缓存破坏?目前它在最后生成数字:js/code.photoswipe.jquery-3.0.4.min.js?_ = 1326992601415我看到了这个,但不知道如何在我的情况下使用它:
$.getScript = function (url, callback, cache) {
$.ajax({
type: "GET",
url: url,
success: callback,
dataType: "script",
cache: cache
});
};
Run Code Online (Sandbox Code Playgroud)如果我多次调用$ .getScript添加相同的js文件,它每次都会请求获取该文件吗?如果是这样,有没有办法检查我们是否已导入该脚本,所以我们可以避免再次为同一个文件调用getScript?
Joh*_*ick 23
$.ajaxSetup({
cache: true
});
Run Code Online (Sandbox Code Playgroud)
这将确保用户只从服务器获取脚本一次,然后从其本地缓存中获取(除非他们的浏览器设置阻止缓存).
$ .getScript的jQuery文档说getScript是以下的简写:
$.ajax({
url: url,
dataType: "script",
success: success
});
Run Code Online (Sandbox Code Playgroud)
http://api.jquery.com/jQuery.getScript/
这意味着您只需要添加一个cache:true参数.
$.ajax({
url: url,
cache : true,
dataType: "script",
success: success
});
Run Code Online (Sandbox Code Playgroud)
就那么简单.getScript函数没什么特别的,只是简写.
Jak*_*kub -3
您的浏览器已经相应地缓存了该网址。因此您不必担心缓存。
但是,如果您想破坏缓存,只需向 url 添加一个随机字符串,如下所示:
$.getScript('js/code.photoswipe.jquery-3.0.4.min.js?' + Math.random(), function () {
//do magic
});
Run Code Online (Sandbox Code Playgroud)
?' + Math.random()将允许一个随机数附加到您的js文件中,因此每次对文件的请求都会破坏缓存(因为它随机生成一个数字)