jQuery和.replaceWith()与.html()的速度

时间:2017-03-10 21:45:21

标签: jquery

我有一个简单的HTML代码:

$( 'div.inner' ).replaceWith( '<div class="inner"><h2>New heading</h2></div>' );

哪一个更快,A)或B)?

A)

$( "div.inner" ).html( "<h2>New heading</h2>" );

B)

adb shell setenforce 0

还有更快的方式吗?

3 个答案:

答案 0 :(得分:1)

使用html()将比使用replaceWith()函数快得多,大约快两倍(本地运行时约为57%)。这可以预期为核心,它只是设置元素的innerHtml属性的包装器。

数字

  • replaceWith() - 平均每秒24,767次操作
  • html() - 平均每秒58,446次操作

这些tests were run using jsPerf and can be seen here并在下面演示:

enter image description here

答案 1 :(得分:0)

B)会更快,因为它会直接调用innerHTML

A)将转到父元素并调用replaceChild

https://github.com/jquery/jquery/blob/56136897f241db22560b58c3518578ca1453d5c7/src/manipulation.js#L451

答案 2 :(得分:0)

这是我为你准备的一个测试案例

https://jsperf.com/jqueryroller

结果(在我的电脑上)显示html()比replaceWith()快2倍。

您可以使用jsperf来测试将来的类似内容,如果需要,甚至可以编辑我的测试。