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 相关文章推荐
jquery text()要注意啦
Oct 30 Javascript
IE下js调试工具Companion.JS
Oct 15 Javascript
javascript正则表达式参数/g与/i及/gi的使用指南
Aug 27 Javascript
在Html中使用Requirejs进行模块化开发实例详解
Apr 15 Javascript
js实现上传图片预览方法
Oct 25 Javascript
jQuery实现的form转json经典示例
Oct 10 jQuery
用React实现一个完整的TodoList的示例代码
Oct 30 Javascript
如何检查一个对象是否为空
Apr 11 Javascript
VUE实现移动端列表筛选功能
Aug 23 Javascript
浅谈layui 绑定form submit提交表单的注意事项
Oct 25 Javascript
vue计算属性+vue中class与style绑定(推荐)
Mar 30 Javascript
浅谈vue使用axios的回调函数中this不指向vue实例,为undefined
Sep 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
一个SQL管理员的web接口
2006/10/09 PHP
一个PHP操作Access类(PHP+ODBC+Access)
2007/01/02 PHP
PHP简洁函数(PHP简单明了函数语法)
2012/06/10 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
event.keyCode键码值表 附只能输入特定的字符串代码
2009/05/15 Javascript
Riot.js 快速的JavaScript单元测试框架
2009/11/09 Javascript
基于jquery的一行代码轻松实现拖动效果
2010/12/28 Javascript
javascript放大镜效果的简单实现
2013/12/09 Javascript
Node.js+Express配置入门教程
2016/05/19 Javascript
走进javascript——不起眼的基础,值和分号
2017/02/24 Javascript
react.js 获取真实的DOM节点实例(必看)
2017/04/17 Javascript
jQuery实现html table行Tr的复制、删除、计算功能
2017/07/10 jQuery
详解如何用VUE写一个多用模态框组件模版
2018/09/27 Javascript
[02:41]DOTA2英雄基础教程 亚巴顿
2014/01/02 DOTA
浅析Python多线程下的变量问题
2015/04/28 Python
django限制匿名用户访问及重定向的方法实例
2018/02/07 Python
python 自定义异常和异常捕捉的方法
2018/10/18 Python
在Python中使用defaultdict初始化字典以及应用方法
2018/10/31 Python
Pytorch Tensor的索引与切片例子
2019/08/18 Python
python实现文件批量编码转换及注意事项
2019/10/14 Python
python-xpath获取html文档的部分内容
2020/03/06 Python
CSS3教程:边框属性border的极致应用
2009/04/02 HTML / CSS
让IE支持HTML5的方法
2012/12/11 HTML / CSS
html5 迷宫游戏(碰撞检测)实例一
2013/07/25 HTML / CSS
橄榄树药房:OLIVEDA
2019/09/01 全球购物
Under Armour安德玛意大利官网:美国高端运动科技品牌
2020/01/16 全球购物
澳大利亚在线划船、露营和钓鱼商店:BCF Australia
2020/03/22 全球购物
超市采购员岗位职责
2014/02/01 职场文书
国庆节文艺活动方案
2014/02/03 职场文书
前厅收银主管岗位职责
2014/02/04 职场文书
小学生读书感言
2014/02/12 职场文书
销售员自我评价
2015/03/11 职场文书
2015年大学教师工作总结
2015/05/20 职场文书
个人工作决心书
2015/09/22 职场文书
导游词之天津古文化街
2019/11/09 职场文书
MySQL数据库中varchar类型的数字比较大小的方法
2021/11/17 MySQL