Javascript .insertAdjacentHTML和.innerHTML之间的差异? 在选择 .EndotRealStuttML >代码>时,有什么不同要考虑?每一个都有哪些引人注目的用例?哪种性能更好?在什么情况下?.innerHTML是如何工作的?还有其他选择吗?

Javascript .insertAdjacentHTML和.innerHTML之间的差异? 在选择 .EndotRealStuttML >代码>时,有什么不同要考虑?每一个都有哪些引人注目的用例?哪种性能更好?在什么情况下?.innerHTML是如何工作的?还有其他选择吗?,javascript,Javascript,有一些好处。insertAdjacentHTML比更具优势。首先是性能。在进行的一项基准测试中,.innerHTML在整整五秒钟内添加了超过200条Twitter推文insertAdjacentHTML在同一时间段内追加了近30000个。需要追加的数据越多,执行的.innerHTML越差。但是请注意,在本例中,数据是使用.innerHTML+=追加的 另一个好处是控制.insertAdjacentHTML为您提供了对附加数据位置的控制,而“.innerHTML则没有 .insertAdjacen

有一些好处
。insertAdjacentHTML
更具优势。首先是性能。在进行的一项基准测试中,
.innerHTML
在整整五秒钟内添加了超过200条Twitter推文<另一方面,code>insertAdjacentHTML在同一时间段内追加了近30000个。需要追加的数据越多,执行的
.innerHTML
越差。但是请注意,在本例中,数据是使用
.innerHTML+=
追加的

另一个好处是控制
.insertAdjacentHTML
为您提供了对附加数据位置的控制,而“.innerHTML则没有

.insertAdjacentHTML
的最终好处是它不会损坏DOM。以下是
.innerHTML+=
的工作原理

  • 它通过序列化 元素
  • 它将+=的右侧附加到字符串
  • 它删除元素的子元素
  • 它解析生成的新字符串 包含旧子体的序列化,后跟一些 新标记。 显然,最后一个好处并不适用于使用
    .innerHTML=
    的情况
  • .innerHTML
    的其他替代方法是
    .insertBefore
    方法,顾名思义,它将一个节点作为子节点插入到另一个节点之前,以及
    .appendChild
    方法,它将一个子节点作为最后一个节点插入

    .insertAdjacentHTML
    是一种多功能工具,它可以执行
    .innerHTML
    .insertBefore
    、以及
    .appendChild
    的工作


    资料来源:

    这两种情况完全不同。使用一个而不是另一个的原因取决于具体情况。您的问题没有提到将
    +=
    .innerHTML
    结合使用,因此我不确定您的答案为什么专门针对这种情况。就像你没有读你自己的问题一样。我编辑了这个问题,现在也在做同样的回答。