UsingDocumentFramgment
允许我们将 DOM 元素彼此附加,而不会导致浏览器重排(即使用离线 DOM 树)。许多像jQuery这样的库使用文档片段来提高性能。
文档片段可以具有复杂的结构。例如,假设它代表如下内容:
<div>
<span>
<a href='asd'>asd</a>
</span>
<span>
<a href='asd2'>asd2</a>
</span>
<div>
<div>
Hello World
</div>
</div>
</div>
或包含多个子项的文档片段:
<h2>Title 1</h2>
<p>Lorem ipsum.</p>
<p>Lorem ipsum.</p>
<h2>Title 2</h2>
<p>Lorem ipsum.</p>
<p>Lorem ipsum.</p>
通常,当我们完成构建片段时,我们会将其附加到主 DOM 树。
当我们这样做时会发生多少次回流?它是否取决于文档片段的直接孩子的数量?
更新:
我收到了来自Google Chrome 团队的Addy Osmani的回复:
只有一个 DOM 重排。PS:我们更倾向于将重排称为布局,因为它基本上是在页面中触发布局/重绘的事件。