【发布时间】:2013-09-27 19:43:21
【问题描述】:
当循环一个大集合并将其附加到 DOM 时,DOM 仅在所有项目都附加后才会刷新。为什么每次 append() 调用后 DOM 不更新?我可以在每次追加后(或者可能在每 n 次追加后)强制 DOM 刷新吗?
var i = 0;
for (i=0; i<5000; i++) {
$('#collection').append('<li>Line Item</li>');
}
注意:我知道通过将所有元素附加到局部变量,然后将该变量附加到 DOM 可以实现更好的性能(避免 DOM 重排)。但我希望前 n 个元素在屏幕上呈现,然后是下一个 n,等等,直到所有元素都被呈现。
【问题讨论】:
-
我认为确实如此,但我认为它会在执行大循环时冻结 UI,因此它似乎一次完成了所有操作,但事实并非如此。
标签: javascript jquery dom