timechunk
针对批量处理,操作dom的解决方案
by lv san
CSS
div {
width: 200px;
height: 30px;
border: 1px solid #ccc;
margin-bottom: 6px;
}
JavaScript
var dataList = [];
// 模拟生成500个数据
for (var i = 1; i <= 500; i++) {
dataList.push(i);
}
// 渲染数据到页面
var renderData = timeShareRender(dataList, function(data) {
var oDiv = document.createElement('div');
oDiv.innerHTML = data;
document.body.appendChild(oDiv);
}, 6);
// 分时间段将数据渲染到页面
function timeShareRender(data, fn, num) {
var cur, timer;
var renderData = function() {
for(var i = 0; i < Math.min(num, data.length); i++) {
cur = data.shift();
fn(cur)
}
};
return function() {
timer = setInterval(function(){
if(data.length === 0) {
return clearInterval(timer)
}
renderData()
}, 1000);
}
}
// 渲染数据到页面
renderData();