网站首页 语言 会计 电脑 医学 资格证 职场 文艺体育 范文

javascript写的异步加载js文件函数

栏目: 网页设计 / 发布于: / 人气:8.56K

自己用的加载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;

}

})();