xxx.appendChild(dom)和xxx.innerHTML +=dom性能研究

zhuanbike 2022-2-24 698

今天有个数据生成的项目,发现使用innerHTML发现在数据较大的情况直接卡死,所以就测试了一下xxx.appendChild(dom)和xxx.innerHTML的性能差别。

<body>
<div id="test1"></div><br>
<input type="button" onclick="innerTest()" value="testInnerHTML">
<div id="test2"></div><br>
<input type="button" onclick="appendTest()" value="testAppendChild">
<script type="text/javascript">
function innerTest() {
var t1 = (new Date()).getTime();
var a = "<b>apple</b>";
var b = document.getElementById("test1");
for (var i = 0; i < 500; i++) {
b.innerHTML += a;
}
t2 = (new Date()).getTime();
console.log("testInnerHTML:" + (t2 - t1));
}
function appendTest() {
var t1 = (new Date()).getTime();
var b = document.getElementById("test2");
for (var i = 0; i < 500; i++) {
var a = document.createElement("b");
a.appendChild(document.createTextNode("apple"));
b.appendChild(a);
}
t2 = (new Date()).getTime();
console.log("testAppendChild:" + (t2 - t1));
}
</script>
</body>


差距在几百秒,也就是相当于快了几百倍。

没用document.write()是很多生命周期不适用这个属性。

最新回复 (0)
发新帖