创建1000个webqq的qq好友列表, 一个好友用一个节点来表示
* timeChunk
var timeChunk = function(a, fn, sz, done) {var obj, t, len = a.length;var start = function() {for (var i = 0; i < Math.min(sz || 1, a.length); i++) {var obj = a.shift();fn.call(this, obj);}}return function() {t = setInterval(function() {// 如果全部节点都已经被创建好if (a.length === 0) {var i = clearInterval(t)typeof done === "function" && done.call(this);return i;}start();}, 200);}
}/*** Pad a string to a certain length with another string*/
function str_pad(input, pad_length, pad_string) {var i = String.valueOf()(input);var n = pad_length - i.length;if (n <= 0)return i;var s = pad_string || "0";while (n--) {i = s + i;}return i;
}// test
var ary = [];
for (var i = 1; i <= 1000; i++) {ary.push(i);
}// 每次加载8个
var renderFriendsList = timeChunk(ary, function(n) {var div = document.createElement("div");div.innerHTML = "Friend-" + str_pad(n, 4);document.body.appendChild(div);
}, 8, function() {var hint = document.createElement("p");hint.innerHTML = "好友列表加载完了";document.body.insertBefore(hint, document.body.querySelector("script"));
});renderFriendsList();
Run: