我有一个包含嵌套递归setTimeout的脚本,如下所示:
function nextImage(){
setTimeout(function(){
if(endOfImage()){
getNewImage()
}else{
showNextImage();
//where the recursive setTimeout happens
nextImage();
}
}, 1000);
}
我的问题:这会对浏览器的性能产生负面影响(例如,当嵌套超时水平过高时,浏览器会崩溃)吗?如果是的话,我应该如何修改我的代码,以便在不牺牲浏览器性能的情况下实现相同的结果呢?
答案 0 :(得分:4)
浏览器没有问题。
事实上这是通常的做法。
仅供参考,它不是真正的递归 - 定时功能始终在新堆栈中启动。
答案 1 :(得分:2)
setTimeout
回调与他们注册的地点没有任何关联。
你的代码很好。