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)因为我的作业共享数据对象。这在工作线程中是不可能的,除非你不断地序列化和反序列化它们,这会造成很大的开销和同步问题。