JavaScript createElement:for循环冻结; while循环没有。为什么?

时间:2013-04-03 22:48:30

标签: javascript for-loop while-loop ubuntu-12.04 createelement

这是一个纯粹的好奇心的问题,因为它让我感到困惑。我在Ubuntu 12.04上,我在Firefox 19.0.2和Chromium 25.0.1364.160上试过这个。查看以下两段JavaScript代码(这些是更大代码段的摘录):

var Div = document.createElement('div');
var limit = 5;

var i = 0;
while (i<limit){
    var img = document.createElement('img');
    img.setAttribute('src', anImage);
    Div.appendChild(img);
    i++;
}
return Div;

var Div = document.createElement('div');
var limit = 5;

for (i=0; i<limit; i++){
    var img = document.createElement('img');
    img.setAttribute('src', anImage);
    Div.appendChild(img);
}
return Div;

现在'while'循环按预期工作,而'for'循环冻结浏览器。为什么这样做?区别在哪里?

我在Interwebs上找了一个类似的案例,但没有什么能成为完美的答案。这是类似的,但不完全相同。

Appending elements to DOM in a loop structure

For Loop Freezes Javascript?

实际上,第二个让我想到了第一个尝试while循环的想法,但它从未解释过,为什么它会产生影响......

感谢您的任何澄清:)

0 个答案:

没有答案