A5下载文章资讯

分类分类

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

2015-08-11 15:34作者:yezheng

 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处理文件请求加载异步同步功能有所帮助。

展开全部

相关

说两句网友评论
    我要跟贴
    取消