我有一个 for 循环在 JavaScript 代码中迭代超过 10,000 次。该循环会创建并添加 < div > 标签到当前页面 DOM 中的一个盒子中。
for(i = 0; i < data.length; i++)
{
tmpContainer += '<div> '+data[i]+' </div>';
if(i % 50 == 0) { /* some delay function */ }
}
containerObj.innerHTML = tmpContainer;
我想在每50个/* some delay function */
因为加载所有10,000个 <div> 标签需要太长时间,我想以每50个 <div>标签的块来更新盒子。
提前致谢。
a.join("")
创建一个大字符串比使用字符串连接构建HTML更有效率。 - T.J. CrowdertmpContainer
重置为空字符串,所以字符串永远不会变得很大 ;) - David Tangdocument.write
**?!?这根本行不通。使用appendChild
等方法是可以的。 - T.J. Crowderhtml
创建元素"。顺便说一下,我之前错了,它有大约398个完全不必要的函数(你正在重新创建创建闭包的东西,甚至没有比其他需要更少)。此外,除非data.length % 50 == 0
,否则这将无法输出最后的1-49或者至少需要重复代码来完成。而应该使用这个代码:http://pastie.org/1533736 这一切都是为了给出一个好答案,而不是给你添麻烦。 - T.J. Crowder