出于性能原因,我想在click事件上加载Javascript文件,而不是在页面加载事件中加载。 反正知道如果javascript已经加载了吗?
现在我正在维护一个全局变量来检查'已加载'事件
var javascriptLoaded=false
if (!javascriptLoaded)
$.getScript('/scripts/test.js', function() {
javascriptLoaded = true;
setTimeout(function() {
callSomeFunctionhere();
}, 1000);
});
有没有更好的方法呢?
答案 0 :(得分:1)
是。你想要做的是使用成功回调。一个回调方法,只有在加载脚本的ajax请求成功完成后才会被调用。例如,这是等效的:
$.ajax({
url: "/myscript.js",
dataType: "script",
success: function(){
scriptLoaded = true;
//do some more stuff now that the script is loaded
}
failure: function(){
scriptLoaded = false;
}
});
答案 1 :(得分:1)
检查脚本是否已加载的一种简单方法是查看该脚本是否可调用:
if($.fn.foo == undefined) {
$.getScript("/path/to/script/foo.js", function() {
// success
});
}