tuzhu_req.js 实现仿百度图片首页效果


Posted in Javascript onAugust 11, 2015

tuzhu_req.js 处理文件请求加载异步同步功能,仿效百度图片首页效果制作

/*土著人开发的require组件 @土著人 (http://www.tuzhuren.com)*/
! function() {
  function e() {}
  Function.prototype.bind || (Function.prototype.bind = function(t) {
    var n = this;
    if ("function" != typeof n)
      throw new TypeError("Function.prototype.bind called on incompatible " + n);
    var o = r.call(arguments, 1),
      i = function() {
        if (this instanceof i) {
          var e = n.apply(this, o.concat(r.call(arguments)));
          return Object(e) === e ? e : this;
        }
        return n.apply(t, o.concat(r.call(arguments)));
      };
    return n.prototype && (e.prototype = n.prototype, i.prototype = new e, e.prototype = null), i;
  });
  var t = Array.prototype,
    r = t.slice;
}();
var require, define;
! function(e) {
  function t(e, t) {
    if (!(e in u)) {
      u[e] = !0;
      var r = document.createElement("script");
      if (t) {
        var o = setTimeout(t, require.timeout);
        r.onerror = function() {
          clearTimeout(o), t()
        }, r.onreadystatechange = function() {
          "complete" == this.readyState && clearTimeout(o)
        }
      }
      return r.type = "text/javascript", r.src = e, n.appendChild(r), r;
    }
  }
 
  function r(e, r, n) {
    var i = o[e] || (o[e] = []);
    i.push(r);
    var a, u = c[e] || {},
      s = u.pkg;
    a = s ? p[s].url : u.url || e, t(a, n && function() {
      n(e);
    });
  }
  function isFunction(it) {
    return Object.prototype.toString.call(it) === '[object Function]';
  }
  function isArray(it) {
    return Object.prototype.toString.call(it) === '[object Array]';
  }
  var n = document.getElementsByTagName("head")[0],
    o = {},
    i = {},
    a = {},
    u = {},
    c = {},
    p = {};
  define = function(name, deps, callback) {
    if (isArray(deps) && isFunction(callback)) {
      deps = callback;
    }
    i[name] = deps;
    var r = o[e];
    if (r) {
      for (var n = 0, a = r.length; a > n; ++n)
        r[n]();
      delete o[name];
    }
  }, require = function(e) {
    e = require.alias(e);
    var t = a[e];
    if (t)
      return t.exports;
    var r = i[e];
    if (!r)
      return false;
    t = a[e] = {
      exports: {}
    };
    var n = "function" == typeof r ? r.apply(t, [require, t.exports, t]) : r;
    return n && (t.exports = n), t.exports;
  }, require.async = function(t, n, o) {
    function a(e) {
      for (var t = e.length - 1; t >= 0; --t) {
        var n = e[t],
          p = c[n];
        p && "deps" in p && a(p.deps), n in i || n in s || (s[n] = !0, l++, r(n, u, o));
      }
    }
 
    function u() {
      if (0 == l--) {
        var r, o, i = [];
        for (r = 0, o = t.length; o > r; ++r)
          try {
            i[r] = require(t[r])
          } catch (a) {}
        n && n.apply(e, i);
      }
    }
    "string" == typeof t && (t = [t]);
    for (var p = t.length - 1; p >= 0; --p)
      t[p] = require.alias(t[p]);
    var s = {},
      l = 0;
    a(t), u();
  }, require.resourceMap = function(e) {
    var t, r;
    r = e.res;
    for (t in r)
      r.hasOwnProperty(t) && (c[t] = r[t]);
    r = e.pkg;
    for (t in r)
      r.hasOwnProperty(t) && (p[t] = r[t]);
  }, require.loadJs = function(e) {
    t(e);
  }, require.loadCss = function(e) {
    if (e.content) {
      var t = document.createElement("style");
      t.type = "text/css", t.styleSheet ? t.styleSheet.cssText = e.content : t.innerHTML = e.content, n.appendChild(t);
    } else if (e.url) {
      var r = document.createElement("link");
      r.href = e.url, r.rel = "stylesheet", r.type = "text/css", n.appendChild(r);
    }
  }, require.alias = function(e) {
    return e
  }, require.timeout = 5e3, define.amd = {
    jQuery: !0,
    version: "1.0.0"
  }
}(this);
! function() {
 (function() {
   var widgets = [],
     nameIdxMap = {},
     callbacks = [],
     remainings = 0;
   require.widget = {
     register: function(name) {
       var idx = nameIdxMap[name];
       if (idx == undefined) {
         nameIdxMap[name] = widgets.length;
         widgets.push(1);
         remainings++;
       } else {
         widgets[idx]++;
       }
     },
     ready: function(callback, ctx) {
       callbacks.push({
         func: callback,
         context: ctx
       });
       if (remainings < 1) {
         _ready();
       }
     },
     loaded: function(name) {
       var idx = nameIdxMap[name],
         num = widgets[idx] - 1;
 
       widgets[idx] = num;
       if (num == 0 && remainings) {
         remainings--;
       }
 
       if (remainings < 1) {
         _ready();
       }
     }
   };
 
   function _ready() {
     var callback;
     while (callback = callbacks.pop()) {
       callback.func.call(callback.ctx);
     }
   }
 })();
}();

希望本文能够给大家学习使用javascript处理文件请求加载异步同步功能有所帮助。

Javascript 相关文章推荐
ANT 压缩(去掉空格/注释)JS文件可提高js运行速度
Apr 15 Javascript
基于JavaScript实现继承机制之构造函数+原型链混合方式的使用详解
May 07 Javascript
JS 添加千分位与去掉千分位的示例
Jul 11 Javascript
JavaScript中的原型和继承详解(图文)
Jul 18 Javascript
详解JavaScript中的every()方法
Jun 08 Javascript
JavaScript实现表格快速变色效果代码
Aug 19 Javascript
Jquery基础之事件操作详解
Jun 14 Javascript
Bootstrap基本插件学习笔记之按钮(21)
Dec 08 Javascript
vue项目tween方法实现返回顶部的示例代码
Mar 02 Javascript
jQuery实现的别踩白块小游戏完整示例
Jan 07 jQuery
Layer组件多个iframe弹出层打开与关闭及参数传递的方法
Sep 25 Javascript
原生JS实现pc端轮播图效果
Dec 21 Javascript
省市区三级联动下拉框菜单javascript版
Aug 11 #Javascript
高性能JavaScript DOM编程(1)
Aug 11 #Javascript
jQuery中prepend()方法使用详解
Aug 11 #Javascript
javascript实现数组中的内容随机输出
Aug 11 #Javascript
javascript弹出拖动窗口
Aug 11 #Javascript
jquery.fastLiveFilter.js实现输入自动过滤的方法
Aug 11 #Javascript
javascript实现五星评价代码(源码下载)
Aug 11 #Javascript
You might like
php多用户读写文件冲突的解决办法
2013/11/06 PHP
PHP变量赋值、代入给JavaScript中的变量
2015/06/29 PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
2016/03/30 PHP
使用Entrust扩展包在laravel 中实现RBAC的功能
2020/03/16 PHP
js下弹出窗口的变通
2007/04/18 Javascript
超级退弹代码
2008/07/07 Javascript
刷新页面实现方式总结(HTML,ASP,JS)
2008/11/13 Javascript
javascript this用法小结
2008/12/19 Javascript
javascript完美拖拽的实现方法
2013/09/29 Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
2016/01/26 Javascript
AngularJS中关于ng-class指令的几种实现方式详解
2016/09/17 Javascript
在JSP中如何实现MD5加密的方法
2016/11/02 Javascript
JavaScript获取当前时间向前推三个月的方法示例
2017/02/04 Javascript
详解Angular 开发环境搭建
2017/06/22 Javascript
echarts设置图例颜色和地图底色的方法实例
2018/08/01 Javascript
微信小程序登录态和检验注册过没的app.js写法
2019/05/22 Javascript
react实现同页面三级跳转路由布局
2019/09/26 Javascript
解决Python的str强转int时遇到的问题
2018/04/09 Python
python字符串常用方法
2018/06/14 Python
python实现梯度下降算法
2020/03/24 Python
python读取.mat文件的数据及实例代码
2019/07/12 Python
python文字转语音的实例代码分析
2019/11/12 Python
python Popen 获取输出,等待运行完成示例
2019/12/30 Python
sklearn和keras的数据切分与交叉验证的实例详解
2020/06/19 Python
python中time包实例详解
2021/02/02 Python
css3动画 小球滚动 js控制动画暂停
2019/11/29 HTML / CSS
基于html5绘制圆形多角图案
2016/04/21 HTML / CSS
如何写出好的Java代码
2014/04/25 面试题
公务员政审个人鉴定
2014/02/25 职场文书
《秋姑娘的信》教学反思
2014/02/28 职场文书
小学三年级学生评语
2014/04/22 职场文书
药品营销策划方案
2014/06/15 职场文书
物理教育专业求职信
2014/06/25 职场文书
2015年前台接待工作总结
2015/05/04 职场文书
MySQL库表名大小写的选择
2021/06/05 MySQL
SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询
2022/05/25 SQL Server