出于性能原因,我想在点击事件中加载Javascript文件,而不是在页面加载事件中加载。如果javascript已经加载,那么有没有什么可以知道的?
现在我正在维护一个全局变量来检查"已加载"事件
var javascriptLoaded=false
if (!javascriptLoaded)
$.getScript('/scripts/test.js', function() {
javascriptLoaded = true;
setTimeout(function() {
callSomeFunctionhere();
}, 1000);
});
有更好的方法吗?
是。您要做的是使用成功回调。只有在成功完成加载脚本的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;
}
});
检查脚本是否已加载的一个简单方法是查看该脚本是否可调用:
if($.fn.foo == undefined) {
$.getScript("/path/to/script/foo.js", function() {
// success
});
}