當前位置:才華齋>設計>網頁設計>

javascript寫的非同步載入js檔案函式

網頁設計 閱讀(7.85K)

自己用的載入js檔案,支援多檔案,不相容ie

javascript寫的非同步載入js檔案函式

複製程式碼 程式碼如下:

/**

* 載入js檔案

* @param {string || array} url js路徑

* @param {Function} fn 載入完成後回撥

* @return {object} game物件

* @example

* getScript("",fn)

* getScript(["",""],fn)

*/

cript = (function() {

var cache = {};//內部快取下url,下次則不請求

return function(url, fn) {

if ("string" === typeof(url)) {

url = [url]; //如果不是陣列帶個套

};

var i = 0,//迴圈起

ok = 0,//載入成功幾個js

len = th,//一共幾個js

head = lementsByTagName("head")[0],

js, _url,

create = function(url) {//建立js

js = teElement("script");

= "text/javascript";

= url;

ndChild(js);

return js;

};

for (; i < len;) {

if (cache[encodeURIComponent((_url = url[i++]))]) {//如果載入過

(++ok >= len && fn) && fn();//如果載入完所有的則執行回撥

continue;

}

cache[encodeURIComponent(_url)] = !0;//設定快取

js = create(_url);//建立js

fn && (ad = function() {

if (++ok >= len) {//如果載入完所有的js則執行回撥

fn();

}

});

};

head = js = _url = create = null;

return this;

}

})();