[JavaScript] tuzhu_req.js 处理文件请求加载异步同步功能 →→→→→进入此内容的聊天室

来自 , 2020-09-22, 写在 JavaScript, 查看 179 次.
URL http://www.code666.cn/view/a85edfa2
  1. /*土著人开发的require组件 @土著人 (http://www.tuzhuren.com)*/
  2. ! function() {
  3.     function e() {}
  4.     Function.prototype.bind || (Function.prototype.bind = function(t) {
  5.         var n = this;
  6.         if ("function" != typeof n)
  7.             throw new TypeError("Function.prototype.bind called on incompatible " + n);
  8.         var o = r.call(arguments, 1),
  9.             i = function() {
  10.                 if (this instanceof i) {
  11.                     var e = n.apply(this, o.concat(r.call(arguments)));
  12.                     return Object(e) === e ? e : this;
  13.                 }
  14.                 return n.apply(t, o.concat(r.call(arguments)));
  15.             };
  16.         return n.prototype && (e.prototype = n.prototype, i.prototype = new e, e.prototype = null), i;
  17.     });
  18.     var t = Array.prototype,
  19.         r = t.slice;
  20. }();
  21. var require, define;
  22. ! function(e) {
  23.     function t(e, t) {
  24.         if (!(e in u)) {
  25.             u[e] = !0;
  26.             var r = document.createElement("script");
  27.             if (t) {
  28.                 var o = setTimeout(t, require.timeout);
  29.                 r.onerror = function() {
  30.                     clearTimeout(o), t()
  31.                 }, r.onreadystatechange = function() {
  32.                     "complete" == this.readyState && clearTimeout(o)
  33.                 }
  34.             }
  35.             return r.type = "text/javascript", r.src = e, n.appendChild(r), r;
  36.         }
  37.     }
  38.  
  39.     function r(e, r, n) {
  40.         var i = o[e] || (o[e] = []);
  41.         i.push(r);
  42.         var a, u = c[e] || {},
  43.             s = u.pkg;
  44.         a = s ? p[s].url : u.url || e, t(a, n && function() {
  45.             n(e);
  46.         });
  47.     }
  48.     function isFunction(it) {
  49.         return Object.prototype.toString.call(it) === '[object Function]';
  50.     }
  51.     function isArray(it) {
  52.         return Object.prototype.toString.call(it) === '[object Array]';
  53.     }
  54.     var n = document.getElementsByTagName("head")[0],
  55.         o = {},
  56.         i = {},
  57.         a = {},
  58.         u = {},
  59.         c = {},
  60.         p = {};
  61.     define = function(name, deps, callback) {
  62.         if (isArray(deps) && isFunction(callback)) {
  63.             deps = callback;
  64.         }
  65.         i[name] = deps;
  66.         var r = o[e];
  67.         if (r) {
  68.             for (var n = 0, a = r.length; a > n; ++n)
  69.                 r[n]();
  70.             delete o[name];
  71.         }
  72.     }, require = function(e) {
  73.         e = require.alias(e);
  74.         var t = a[e];
  75.         if (t)
  76.             return t.exports;
  77.         var r = i[e];
  78.         if (!r)
  79.             return false;
  80.         t = a[e] = {
  81.             exports: {}
  82.         };
  83.         var n = "function" == typeof r ? r.apply(t, [require, t.exports, t]) : r;
  84.         return n && (t.exports = n), t.exports;
  85.     }, require.async = function(t, n, o) {
  86.         function a(e) {
  87.             for (var t = e.length - 1; t >= 0; --t) {
  88.                 var n = e[t],
  89.                     p = c[n];
  90.                 p && "deps" in p && a(p.deps), n in i || n in s || (s[n] = !0, l++, r(n, u, o));
  91.             }
  92.         }
  93.  
  94.         function u() {
  95.             if (0 == l--) {
  96.                 var r, o, i = [];
  97.                 for (r = 0, o = t.length; o > r; ++r)
  98.                     try {
  99.                         i[r] = require(t[r])
  100.                     } catch (a) {}
  101.                 n && n.apply(e, i);
  102.             }
  103.         }
  104.         "string" == typeof t && (t = [t]);
  105.         for (var p = t.length - 1; p >= 0; --p)
  106.             t[p] = require.alias(t[p]);
  107.         var s = {},
  108.             l = 0;
  109.         a(t), u();
  110.     }, require.resourceMap = function(e) {
  111.         var t, r;
  112.         r = e.res;
  113.         for (t in r)
  114.             r.hasOwnProperty(t) && (c[t] = r[t]);
  115.         r = e.pkg;
  116.         for (t in r)
  117.             r.hasOwnProperty(t) && (p[t] = r[t]);
  118.     }, require.loadJs = function(e) {
  119.         t(e);
  120.     }, require.loadCss = function(e) {
  121.         if (e.content) {
  122.             var t = document.createElement("style");
  123.             t.type = "text/css", t.styleSheet ? t.styleSheet.cssText = e.content : t.innerHTML = e.content, n.appendChild(t);
  124.         } else if (e.url) {
  125.             var r = document.createElement("link");
  126.             r.href = e.url, r.rel = "stylesheet", r.type = "text/css", n.appendChild(r);
  127.         }
  128.     }, require.alias = function(e) {
  129.         return e
  130.     }, require.timeout = 5e3, define.amd = {
  131.         jQuery: !0,
  132.         version: "1.0.0"
  133.     }
  134. }(this);
  135. ! function() {
  136.   (function() {
  137.       var widgets = [],
  138.           nameIdxMap = {},
  139.           callbacks = [],
  140.           remainings = 0;
  141.       require.widget = {
  142.           register: function(name) {
  143.               var idx = nameIdxMap[name];
  144.               if (idx == undefined) {
  145.                   nameIdxMap[name] = widgets.length;
  146.                   widgets.push(1);
  147.                   remainings++;
  148.               } else {
  149.                   widgets[idx]++;
  150.               }
  151.           },
  152.           ready: function(callback, ctx) {
  153.               callbacks.push({
  154.                   func: callback,
  155.                   context: ctx
  156.               });
  157.               if (remainings < 1) {
  158.                   _ready();
  159.               }
  160.           },
  161.           loaded: function(name) {
  162.               var idx = nameIdxMap[name],
  163.                   num = widgets[idx] - 1;
  164.  
  165.               widgets[idx] = num;
  166.               if (num == 0 && remainings) {
  167.                   remainings--;
  168.               }
  169.  
  170.               if (remainings < 1) {
  171.                   _ready();
  172.               }
  173.           }
  174.       };
  175.  
  176.       function _ready() {
  177.           var callback;
  178.           while (callback = callbacks.pop()) {
  179.               callback.func.call(callback.ctx);
  180.           }
  181.       }
  182.   })();
  183. }();
  184. //javascript/9027

回复 "tuzhu_req.js 处理文件请求加载异步同步功能"

这儿你可以回复上面这条便签

captcha