源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

javascript写的异步加载js文件函数(支持数组传参)

  • 时间:2022-04-03 18:18 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:javascript写的异步加载js文件函数(支持数组传参)
自己用的加载js文件,支持多文件,不兼容ie
[u]复制代码[/u] 代码如下:
/**  * 加载js文件  * @param  {string || array}   url   js路径  * @param  {Function} fn      加载完成后回调  * @return {object}           game对象  * @example  * getScript("url.js",fn)  * getScript(["url-1.js","url-2.js"],fn)  */ game.getScript = (function() {  var cache = {};//内部缓存下url,下次则不请求  return function(url, fn) {   if ("string" === typeof(url)) {    url = [url]; //如果不是数组带个套   };   var i = 0,//循环起    ok = 0,//加载成功几个js    len = url.length,//一共几个js    head = document.getElementsByTagName("head")[0],    js, _url,    create = function(url) {//创建js     js = document.createElement("script");     js.type = "text/javascript";     js.src = url;     head.appendChild(js);     return js;    };   for (; i < len;) {    if (cache[encodeURIComponent((_url = url[i++]))]) {//如果加载过     (++ok >= len && fn) && fn();//如果加载完所有的js则执行回调     continue;    }    cache[encodeURIComponent(_url)] = !0;//设置缓存    js = create(_url);//创建js    fn && (js.onload = function() {     if (++ok >= len) {//如果加载完所有的js则执行回调      fn();     }    });   };   head = js = _url = create  = null;   return this;  } })();
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部