Javascript和谷歌浏览器

时间:2015-08-25 00:03:11

标签: javascript google-chrome loops

当我在Google Chrome控制台上循环执行javascript代码时,此页面上的每个javascript内容都无效,因为我正在这个循环中。 有没有办法在我的脚本上有一个无限循环,并继续让我的网页正常工作? 我必须使用某种线程吗?

1 个答案:

答案 0 :(得分:0)

不,您在浏览器窗口中没有多个JavaScript线程。

如果您正在执行紧密循环,某些浏览器可能会锁定,因为JavaScript进程会冻结UI,或者可能会检测到循环并将其终止。 Chrome可以做到这一点,新版本的Internet Explorer也是如此。如果浏览器没有干预并允许用户终止该脚本,则其他方法将终止进程或重新启动计算机。 (紧密循环示例:while(2+2!==5);

如果你想定期做事 - 比如动画 - 使用 setInterval 来每隔很多毫秒调用一个函数。您可以通过维护一个简单的循环计数器来循环执行此操作。

示例:

function blink(el) // millenials won't get this
{
    el.blink_visible = !el.blink_visible;
    el.style.visibility = el.blink_visible ? 'visible' : 'hidden';
}

var label = document.getElementById('label');
var delayMs = 500; // delay in milliseconds
setInterval(blink, delayMs, label);
<h1 id='label'>Hello World</h1>

您可以将毫秒设置得非常低并且通常可以使用它,但这取决于您在每次迭代时调用的函数中执行的操作。