Javascript通过jquery getscript加载了检查



出于性能原因,我想在点击事件中加载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 
    });
}

最新更新