Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 嵌套setTimeout的性能_Javascript - Fatal编程技术网

Javascript 嵌套setTimeout的性能

Javascript 嵌套setTimeout的性能,javascript,Javascript,我有一个脚本,其中包含嵌套的递归setTimeout,如下所示: function nextImage(){ setTimeout(function(){ if(endOfImage()){ getNewImage() }else{ showNextImage(); //where the recursive setTimeout happens nextImage(); } }, 1000); } 我的问

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

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

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

我的问题:这是否会对浏览器的性能产生负面影响(即当嵌套超时的级别太多时,浏览器将崩溃)?如果是,我应该如何修改代码,以便在不牺牲浏览器性能的情况下获得相同的结果?

setTimeout
回调不会以任何方式连接到注册位置


您的代码很好。

setTimeout
回调没有以任何方式连接到它们注册的位置


您的代码很好。

浏览器对此没有问题

事实上,这是通常的做法


仅供参考,这不是真正的递归-timeouted函数总是在新堆栈中启动。

浏览器对此没有问题

事实上,这是通常的做法

仅供参考,它不是真正的递归-timeouted函数总是在新堆栈中启动。

它不是真正的“递归”,因为在进行下一次调用时,对函数的上一次调用不会在堆栈上。它不是真正的“递归”,因为在进行下一次调用时,对函数的上一次调用不会在堆栈上。