这个网站对 3 种不同的方法进行了测试,看起来.html最快,其次是.append。其次是.innerHTML。有人可以向我解释原因吗?

这是进行比较的网站在这三种方法中。

我读过这个问题这是相关的,但我并不真正理解给定的答案,而且这个问题并没有真正详细说明.innerHtml

我不明白以下部分:

创建一个临时元素,我们称其为x。X的InnerHTML设置为您传递的HTML字符串。然后,jQuery将将每个生成的节点(即X的childnodes)转移到新创建的文档片段中,然后将其下次缓存。然后,它将作为新的DOM收藏品返回片段的儿童。请注意,它实际上比这要复杂得多,因为JQuery进行了一堆跨浏览器检查和其他各种优化。例如。如果你通过<div></div>对于jQuery(),jQuery将进行捷径,然后简单地做文档。

有人可以简化这一点吗?

答案

该基准是毫无价值的。innerHTML总是比DOM操纵更快。

jQueryseems 更快的速度是因为它首先使用所有HTML准备一个字符串,而其他人则每次迭代进行一次操作。另请注意,jquery.html()使用innerHTML无论何时可以。

来自基准的jQuery

var html = '';
for (var i = 0; i < len; i++) {
  html += '<div>Test ' + i + '</div>';
}

$('#list').html(html);

Innerhtml从基准测试

var list = document.getElementById('list');
for (var i = 0; i < len; i++) {
  list.innerHTML = list.innerHTML + '<div>Test ' + i + '</div>';
}

测试innerHTML如果写的话会更快:

var list = document.getElementById('list');
var html = '';

for (var i = 0; i < len; i++) {
    html += '<div>Test ' + i + '</div>';
}

list.innerHTML = html;

http://jsben.ch/

来自: stackoverflow.com