浏览器解析 HTML 代码的效率很高,所以用 innerHTML 的方式将 HTML 插入文档的方式比用 DOM 操作的方式要快。
1 2
element.innerHTML = "<div><p>This is some text inside a paragraph and a div and being assigned to an element</p></div>";
16、避免一次性进行大规模的 DOM 改变。
改变 DOM 元素会导致文档流重新解析,可以临时创建一个对象,在这个对象中操作所有的改变,最后将结果插入文档。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
var oOrignElem = document.getElementById("myDiv"); var oClone = oOrignElem.cloneNode(true); oClone.setAttribute("style", "width:50%");
var oNewElem = null, sContent = ""; var cStrs = asStrings.length; // supose this is a big array for (var i = 0; i < cStrs; i++) { oNewElem = document.createElement("p"); sContent = document.createTextNode(asStrings[i]); oNewElem.appendChild(sContent); cloned.appendChild(oNewElem); } oOrignElem.parentNode.replaceChild(oClone, oOrignElem);