这是一个纯粹的好奇心的问题,因为它让我感到困惑。我在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
实际上,第二个让我想到了第一个尝试while循环的想法,但它从未解释过,为什么它会产生影响......
感谢您的任何澄清:)