创建文档碎片优化DOM插入操作

有一段HTML字符串,想插入到页面中,通常来讲要如下几个步骤才能完成:

//创建节点
var oDiv = document.createElement("div");
//装载字符串
oDiv.innerHTML = html;
//获取生成的节点
var nodes = oDiv.childNodes;
//把新生成的节点插入到文档的#container元素中
var container = document.getElementById('container');
for (var i=0, length=nodes.length; i

上面的每次循环都会导致浏览器的回流和重绘,所以应该把这些节点变成一个节点再append

var oDiv     = document.createElement("div"),
    nodes    = null,
    fragment = document.createDocumentFragment();// 创建一个文档片段
oDiv.innerHTML = html;
nodes = oDiv.childNodes;
//把新增的节点先暂存到片段中
for (var i=0, length=nodes.length; i

最新的浏览器已经有现成的方法可用了

var container = document.getElementById('container');
container.insertAdjacentHTML('beforeEnd', html);//append
container.insertAdjacentHTML('afterBegin', html);//prepend

你可能感兴趣的:(创建文档碎片优化DOM插入操作)