Javascript:使用setInterval的后台任务的理想块大小?
考虑一个通过Javascript:使用setInterval的后台任务的理想块大小?,javascript,settimeout,setinterval,Javascript,Settimeout,Setinterval,考虑一个通过setTimeout/setInterval定期执行后台任务的应用程序。一个函数调用应该做的理想工作量是多少 例如: myTask = function() { for (var i=0; i<chunkSize; i++) { ...work... } } setInterval(myTask, period); myTask=function(){ 对于(var i=0;i,如果可以,您应该使用setTimeout而不是setInterval,setInterval
setTimeout
/setInterval
定期执行后台任务的应用程序。一个函数调用应该做的理想工作量是多少
例如:
myTask = function() {
for (var i=0; i<chunkSize; i++) { ...work... }
}
setInterval(myTask, period);
myTask=function(){
对于(var i=0;i,如果可以,您应该使用setTimeout
而不是setInterval
,setInterval
将在period
后调用函数,无论上一个间隔中的函数是否完成。使用setTimeout
,您可以确保函数在再次调用之前已完成
(function myTask() {
for (var i=0; i<chunkSize; i++) { ...work... }
setTimeout( myTask, period );
})();
(函数myTask(){
对于(var i=0;i为什么不使用工作线程呢?我个人会使用反向AJAX,因为回调首先是异步执行的,但我喜欢让事情复杂化:为什么不使用工作线程?1)因为旧浏览器不支持它们。2)因为我的作业共享数据对象。这在工作线程中是不可能的,除非你不断地序列化和反序列化它们,这会造成很大的开销和同步问题。