使用setTimeout冻结浏览器

时间:2016-06-22 19:59:48

标签: javascript

所以我在这里遇到了这个问题并且认为我会分享它,知道其他人也会遇到同样的问题。

我在我的脚本中使用setTimeout来创建一个循环,例如:

function myExample() {
    //Do Something
    setTimeout(myExample(), 3000);
}

myExample();

突然,我的页面开始冻结,装载将永远,直到chrome终于决定停止标签的过程。

1 个答案:

答案 0 :(得分:3)

这里的问题很容易被忽视。

setTimeout(myExample(), 3000);

而不是

setTimeout(myExample, 3000);

这导致它立即调用该函数,无任何延迟地自行循环。为每个函数调用添加一个XHR请求,等等。浏览器标签崩溃。

我不能保证这是造成你问题的原因,但这是我在很长一段时间后没有注意到的事情。