设置间隔()
重复调用函数或执行代码片段,每次调用该函数之间有固定的时间延迟。
尽管()
只要测试条件评估为真,就创建一个执行指定语句的循环。在执行语句之前评估条件。
如果我使用while(true)
执行特定语句,我的浏览器要么崩溃(Firefox),滞后(Opera),或者该语句不会被执行(Chrome),但如果我使用0 秒setInterval()
的固定时间,一切正常,即使它只有 0 秒,并且在逻辑上不能快于 0 秒,但为什么会发生这种情况?while(true)
while()示例:
<!DOCTYPE html>
<html>
<body>
<div id="counter"></div>
<script>
var i = 0;
while (true)
{
document.getElementById("counter").innerHTML += i++;
}
</script>
</body>
</html>
setInterval()示例:
<!DOCTYPE html>
<html>
<body>
<div id="counter"></div>
<script>
var i = 0;
setInterval(function() { counter() }, 0);
function counter()
{
document.getElementById("counter").innerHTML += i++;
}
</script>
</body>
</html>