“innerHTML = ...”与“appendChild(txtNode)”幕后
通过操作 HTML 元素的性能和功能“innerHTML = ...”和“appendChild(txtNode)”不同
appendChild(txtNode)
此方法将文本节点附加到现有节点的末尾,而不会导致完整的 DOM 重建。这是向元素添加内容的有效方法,因为它避免了解析 HTML 和重建 DOM 的开销。
innerHTML = ...
相反, “innerHTML = ...”通过将字符串连接到元素的现有 HTML 来修改元素的 HTML 内容。这会触发元素内 DOM 的完全重建,这在计算上可能会很昂贵。此外,它还会使元素内对先前子节点的任何引用无效。
ReFlow
两种方法都会触发“ReFlow” - 重新计算元素布局的过程大小或位置改变后。
效率注意事项
对于追加,“appendChild(txtNode)”通常更有效,因为它避免了与“innerHTML = ...”相关的解析和重建开销。
副作用
修改“innerHTML”有一个显着的副作用:它会使对被修改元素内的子节点。相反,“appendChild(txtNode)”保留了这些引用。
替代方法
除了“appendChild(txtNode)”之外,附加内容的替代方法包括:
方法的选择取决于具体要求和所需的性能特征。
以上是“innerHTML = ...”与“appendChild(txtNode)”:什么时候应该使用每个?的详细内容。更多信息请关注PHP中文网其他相关文章!