1. 程式人生 > >Javascript Yielding Processes 定時器陣列分塊技術

Javascript Yielding Processes 定時器陣列分塊技術

//核心函式
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 data = [12,123,1234,453,436,23,23,5,4123,45,346,5634,2234,345,342];
function printValue(item){
 var body = document.body;
 body.innerHTML += item + "<br>";
}
chunk(data, printValue);

一旦某個函式需要花 50ms 以上的時間完成,那麼最好看看能否將任務分割為一 系列可以使用定時器的小任務。