亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

javascript寫的異步加載js文件函數(shù)

時(shí)間:2024-09-28 21:52:48 JavaScript 我要投稿
  • 相關(guān)推薦

javascript寫的異步加載js文件函數(shù)

  自己用的加載js文件,支持多文件,不兼容ie

  復(fù)制代碼 代碼如下:

  /**

  * 加載js文件

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

  * @param {Function} fn 加載完成后回調(diào)

  * @return {object} game對象

  * @example

  * getScript("url.js",fn)

  * getScript(["url-1.js","url-2.js"],fn)

  */

  game.getScript = (function() {

  var cache = {};//內(nèi)部緩存下url,下次則不請求

  return function(url, fn) {

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

  url = [url]; //如果不是數(shù)組帶個(gè)套

  };

  var i = 0,//循環(huán)起

  ok = 0,//加載成功幾個(gè)js

  len = url.length,//一共幾個(gè)js

  head = document.getElementsByTagName("head")[0],

  js, _url,

  create = function(url) {//創(chuàng)建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則執(zhí)行回調(diào)

  continue;

  }

  cache[encodeURIComponent(_url)] = !0;//設(shè)置緩存

  js = create(_url);//創(chuàng)建js

  fn && (js.onload = function() {

  if (++ok >= len) {//如果加載完所有的js則執(zhí)行回調(diào)

  fn();

  }

  });

  };

  head = js = _url = create = null;

  return this;

  }

  })();

【javascript寫的異步加載js文件函數(shù)】相關(guān)文章:

淺析jQuery 遍歷函數(shù)javascript08-06

Javascript函數(shù)的定義和用法分析08-15

JavaScript中push(),join() 函數(shù)實(shí)例詳解09-05

最常用的20個(gè)javascript方法函數(shù)09-10

JavaScript日期時(shí)間格式化函數(shù)08-29

JS AJAX前臺如何給后臺類的函數(shù)傳遞參數(shù)的方法07-08

JavaScript中常見的字符串操作函數(shù)及用法07-24

有關(guān)javascript實(shí)現(xiàn)的多個(gè)層切換效果通用函數(shù)示例10-07

JavaScript基于正則表達(dá)式數(shù)字判斷函數(shù)06-14

Node.js如何響應(yīng)Ajax的POST請求并且保存為JSON文件詳解05-22