很多时候,需要在页面上展示从后台来的大量数据,如果一次性渲染,会影响用户的体验。(而且浏览器中的JS严格限制了资源)
/*
*使用分组的思想来渲染大量的数组
*@parmas array 要处理的数组
*@params process 对数组中每一个item进行的操作
*@parmas context 执行的上下文
*/
function chunk(array, process, context){setTimeout(function(){var item = array.shift();process.call(context, item);if (array.length > 0){setTimeout(arguments.callee, 100);}}, 100);
}
// 定义数组
var myArray = [12, 123, 123, 4324, 412314 , 43241,341,3241] // 随便弄的一个数组
function myProcess(item){var div = document.getElementById("myDiv");div.innerHTML += item + "<br>";
}
// 调用上面的chunk函数
chunk(myArray, myProcess);
详情参考《JavaScript高级程序设计》(第3版) P613