嵌套setTimeout的性能

时间:2014-08-24 13:26:04

标签: javascript

我有一个包含嵌套递归setTimeout的脚本,如下所示:

function nextImage(){
  setTimeout(function(){ 
    if(endOfImage()){
      getNewImage()
    }else{
      showNextImage();

      //where the recursive setTimeout happens
      nextImage();
    }  
  }, 1000);
}

我的问题:这会对浏览器的性能产生负面影响(例如,当嵌套超时水平过高时,浏览器会崩溃)吗?如果是的话,我应该如何修改我的代码,以便在不牺牲浏览器性能的情况下实现相同的结果呢?

2 个答案:

答案 0 :(得分:4)

浏览器没有问题。

事实上这是通常的做法。

仅供参考,它不是真正的递归 - 定时功能始终在新堆栈中启动。

答案 1 :(得分:2)

setTimeout回调与他们注册的地点没有任何关联。

你的代码很好。