AFAIK,文档片段的好处是它们不会导致回流事件,直到片段被插入到 DOM 中。听起来很合理,但似乎超出 DOM 的元素也不会导致回流。
例如:
// with document fragment
var df = document.createDocumentFragment();
// append a bunch of hyperlinks to df
var container = document.createElement('div');
container.appendChild(df);
document.body.appendChild(container);
// with in-memory element
var container = document.createElement('div');
// append a bunch of hyperlinks to container
document.body.appendChild(container);
我在 Chrome 和 Firefox 中运行了这个,并没有看到两个版本之间的任何性能差异。
考虑到该方法的年代createDocumentFragment
(甚至 IE6 也支持它),我的理论是它在某些时候更有效,但多年对浏览器渲染引擎的优化使其变得不必要。这个对吗?