• <nav id="cwumo"><code id="cwumo"></code></nav>
  • <menu id="cwumo"><strong id="cwumo"></strong></menu>

    javascript寫的異步加載js文件函數

    時間:2024-09-28 21:52:48 JavaScript 我要投稿
    • 相關推薦

    javascript寫的異步加載js文件函數

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

      復制代碼 代碼如下:

      /**

      * 加載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;

      }

      })();

    【javascript寫的異步加載js文件函數】相關文章:

    淺析jQuery 遍歷函數javascript08-06

    Javascript函數的定義和用法分析08-15

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

    最常用的20個javascript方法函數09-10

    JavaScript日期時間格式化函數08-29

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

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

    有關javascript實現的多個層切換效果通用函數示例10-07

    JavaScript基于正則表達式數字判斷函數06-14

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

    日韩激情