当我通过“.html”jQuery从javascript文件中调用时,URL被映射,以便强制更新javascript文件。举个例子:
$(".r").html(data+'<script text="text/javascript" src="http://../test.js"></script>');
我在jQuery进行调用时得到的结果是使用以下URL加载文件:
Request URL: http://../test.js?_=1383736176662
因此,每次调用时,它都会创建一个新的URI字符串“?_ =”,其中包含随机数,可防止从缓存中加载“.js”文件。
有没有人知道如何拉这个URI字符串来从缓存中加载文件?
答案 0 :(得分:2)
使用ajax
调用加载脚本,您可以手动将缓存设置为false ...
$.ajax({
url: "http://../test.js",
cache: true,
dataType: "script"
});
答案 1 :(得分:2)
如果您想使用.html()
的内置功能来获取外部脚本,但仍想使用缓存,那么您可以使用$.ajaxSetup
来控制它:
$.ajaxSetup({ cache: true });
$(".r").html(data+'<script src="http://../test.js"></script>');
$.ajaxSetup({ cache: false });
或猴子补丁$.fn.html
:在应用时打开缓存:
$.fn.html = (function($html) {
return function() {
var cache = $.ajaxSetup()['cache'];
$.ajaxSetup({cache: true});
var ret = $html.apply($(this), arguments);
$.ajaxSetup({cache: cache});
return ret;
};
}($.fn.html));