循环插几千个节点页面卡死,用 fragment 批量插入

循环里逐个 appendChild 会触发多次重排。

先建 DocumentFragment,往它上面挂节点。

挂完一次 append 到容器,只重排一次。

表格、列表这类批量渲染用它最快。

节点多的话再配合 requestAnimationFrame 分片。

// 一次性插入 5000 个节点,只触发一次重排
const frag = document.createDocumentFragment();
for (let i = 0; i < 5000; i++) {
  const li = document.createElement('li');
  li.textContent = '第 ' + i + ' 行';
  frag.appendChild(li);
}
list.appendChild(frag);
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容