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 相关文章推荐
文本框获得焦点和失去焦点的判断代码
Mar 18 Javascript
node在两个div之间移动,用ztree实现
Mar 06 Javascript
浅谈轻量级js模板引擎simplite
Feb 13 Javascript
jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容
Dec 08 Javascript
jQuery设计思想
Mar 07 Javascript
js实现扫雷小程序的示例代码
Sep 27 Javascript
微信上传视频文件提示(推荐)
Nov 22 Javascript
Jquery获取radio选中值实例总结
Jan 17 jQuery
vue-cli3 项目优化之通过 node 自动生成组件模板 generate View、Component
Apr 30 Javascript
vue不操作dom实现图片轮播的示例代码
Dec 18 Javascript
Vue.js实现立体计算器
Feb 22 Javascript
javascript的setTimeout()使用方法总结
Nov 20 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 防止单引号,双引号在接受页面转义
2008/07/10 PHP
php preg_filter执行一个正则表达式搜索和替换
2012/02/27 PHP
php中用socket模拟http中post或者get提交数据的示例代码
2013/08/08 PHP
php实现在服务器上创建目录的方法
2015/03/16 PHP
PHP DB 数据库连接类定义与用法示例
2019/03/11 PHP
详解使用php-cs-fixer格式化代码
2020/09/16 PHP
百度留言本js 大家可以参考下
2009/10/13 Javascript
在JavaScript中获取请求的URL参数[正则]
2010/12/25 Javascript
线路分流自动智能跳转代码,自动选择最快镜像网站(js)
2011/10/31 Javascript
jQuery基础框架浅入剖析
2012/12/27 Javascript
JS特权方法定义作用以及与公有方法的区别
2013/03/18 Javascript
Javascript中的for in循环和hasOwnProperty结合使用
2013/06/05 Javascript
javascript原始值和对象引用实例分析
2015/04/25 Javascript
详解WordPress开发中get_current_screen()函数的使用
2016/01/11 Javascript
jQuery基于函数重载实现自定义Alert函数样式的方法
2016/07/27 Javascript
Angular ng-repeat遍历渲染完页面后执行其他操作详细介绍
2016/12/13 Javascript
js封装tab标签页实例分享
2016/12/19 Javascript
echarts3 使用总结(绘制各种图表,地图)
2017/01/05 Javascript
jquery.masonry瀑布流效果
2017/05/25 jQuery
js Date()日期函数浏览器兼容问题解决方法
2017/09/12 Javascript
JS数组去重常用方法实例小结【4种方法】
2018/05/28 Javascript
浅析Vue.js 中的条件渲染指令
2018/11/19 Javascript
详解Vue2 添加对scss的支持
2019/01/02 Javascript
Nodejs中怎么实现函数的串行执行
2019/03/02 NodeJs
bootstrap-table formatter 使用vue组件的方法
2019/05/09 Javascript
BootStrap前端框架使用方法详解
2020/02/26 Javascript
使用JavaScript获取扫码枪扫描得到的条形码的思路代码详解
2020/06/10 Javascript
在Python中使用成员运算符的示例
2015/05/13 Python
Python语言的面相对象编程方式初步学习
2016/03/12 Python
python实现对csv文件的列的内容读取
2018/07/04 Python
Python爬虫之网页图片抓取的方法
2018/07/16 Python
python3通过udp实现组播数据的发送和接收操作
2020/05/05 Python
局域网定义和特性
2016/01/23 面试题
采购内勤岗位职责
2013/12/10 职场文书
导游词之永济鹳雀楼
2020/01/16 职场文书
MySQL Router的安装部署
2021/04/24 MySQL