重新加载外部 javascript 文件的最佳和快速实践?
Best and fast practice to reload an external javascript file?
大家好,我有一个很大的疑问....
在我的 javscript 代码中,我需要每 1 分钟重新加载一个 js 文件(其中有一个多维数组)。
要重新加载它建议我使用 ajax
或其他方式 ?
示例A:
try {
jQuery.ajax({
url: "http://www.fake.con/scripts/out/array/week-quakes.js",
dataType: "script",
cache: false
});
}
catch(e){
var aggiungi= '<span>there's error about server</span>';
$(aggiungi).appendTo('#lista-eq');
}
例子B
$("head script[src='http://www.fake.con/scripts/out/array/week-quakes.js']").remove();
$('head').append('<script type="text/javascript" src="http://www.fake.con/scripts/out/array/week-quakes.js"><\/script>');
这些代码在setInterval(function())
里面
但是我的问题也是,当我可以使用 realod js 文件时,它还没有准备好或不存在,那么我该如何解决这个问题?
我希望你能帮助我并提出好的建议:)
我会选择那样的东西。首先删除旧版本。然后用新元素创建一个新元素,并将某种 "cachebuster" 添加到 url,因此它不会重新加载缓存版本。
let loadJsScript = function(src) {
let oldScript = $("script[src='" + src + "']"),
script = document.createElement('script');
oldScript && oldScript.remove();
script.type = 'text/javascript';
script.src = src
$('head').append(script);
}
loadJsScript('/scripts/out/array/week-quakes.js?cachebuster='+ new Date().getTime());
为了 运行 函数每分钟你会用 setInterval 函数包装它。
setInterval(function(){
loadJsScript('/scripts/out/array/week-quakes.js?cachebuster='+ new Date().getTime());
},60000)
大家好,我有一个很大的疑问....
在我的 javscript 代码中,我需要每 1 分钟重新加载一个 js 文件(其中有一个多维数组)。
要重新加载它建议我使用 ajax
或其他方式 ?
示例A:
try {
jQuery.ajax({
url: "http://www.fake.con/scripts/out/array/week-quakes.js",
dataType: "script",
cache: false
});
}
catch(e){
var aggiungi= '<span>there's error about server</span>';
$(aggiungi).appendTo('#lista-eq');
}
例子B
$("head script[src='http://www.fake.con/scripts/out/array/week-quakes.js']").remove();
$('head').append('<script type="text/javascript" src="http://www.fake.con/scripts/out/array/week-quakes.js"><\/script>');
这些代码在setInterval(function())
但是我的问题也是,当我可以使用 realod js 文件时,它还没有准备好或不存在,那么我该如何解决这个问题?
我希望你能帮助我并提出好的建议:)
我会选择那样的东西。首先删除旧版本。然后用新元素创建一个新元素,并将某种 "cachebuster" 添加到 url,因此它不会重新加载缓存版本。
let loadJsScript = function(src) {
let oldScript = $("script[src='" + src + "']"),
script = document.createElement('script');
oldScript && oldScript.remove();
script.type = 'text/javascript';
script.src = src
$('head').append(script);
}
loadJsScript('/scripts/out/array/week-quakes.js?cachebuster='+ new Date().getTime());
为了 运行 函数每分钟你会用 setInterval 函数包装它。
setInterval(function(){
loadJsScript('/scripts/out/array/week-quakes.js?cachebuster='+ new Date().getTime());
},60000)