createDocumentFragment
javascript
!!!tip 核心本质: createDocumentFragment 将 dom 操作批量进行操作 !!!
如下代码片段,循环往 document 里面添加元素
text
1let element = document.getElementById('ul');
2let eles = document.getElementByIds('li');
3for (var i = eles.length - 1; i >= 0; i--) {
4 element.appendChild(eles[i]);
5}先创建一个 Fragment 片段,js 在内存中先把对象创建好,然后一次往 document 中进行插入。
text
1let element = document.getElementById('ul');
2
3let fragment = document.createDocumentFragment();
4let browsers = ['Firefox', 'Chrome', 'Opera',
5 'Safari', 'Internet Explorer'];
6
7browsers.forEach((browser) => {
8 let li = document.createElement('li');
9 li.textContent = browser;
10 // 此处往文档片段插入子节点,不会引起回流 (相当于打包操作)
11 fragment.appendChild(li);
12});
13element.appendChild(fragment); // 将打包好的文档片段插入ul节点,只做了一次操作