「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中文網其他相關文章!