【发布时间】:2011-07-25 16:26:34
【问题描述】:
几年前,有人警告我不要长时间使用setInterval,因为如果调用的函数运行时间超过指定的时间间隔,它可能会导致浏览器挂起,然后就无法赶上:
setInterval( function(){
foo = 'bar_' + i++;
}, 1 );
现在,我知道在循环中添加大量代码可能会导致浏览器挂起无论如何,而像 alert、prompt 和 confirm 这样的阻塞代码会停止代码,但有什么好的理由避免setInterval?
注意:我知道如何进行递归 setTimeout 调用(因为这是我一直在使用的),这个问题是我试图弄清楚它是否仍然值得使用它们,或者 setInterval 是否可以安全使用。
【问题讨论】:
-
Chrome 的 setInterval 存在问题。见这里:code.google.com/p/chromium/issues/detail?id=25892。就个人而言,我只是使用递归 setTimeout(闭包对此非常有用)。
标签: javascript settimeout setinterval