最佳化 DOM 大小

Connor Clark
Connor Clark

發布日期:2025 年 10 月 8 日

大型 DOM 可能會增加樣式運算和版面配置的時間,影響網頁的回應速度。大型 DOM 也會增加記憶體用量。

深層 DOM 樹狀結構本身不會造成效能問題,但這是使用不必要元素巢狀結構的設計模式徵兆。

這項洞察資訊會考量整個 DOM,包括陰影根目錄中的 DOM。並忽略並非元素的 DOM 節點。也會忽略 <iframe> 內容。

報告重點:

  • 元素總數:網頁 DOM 中的元素總數。
  • DOM 深度:DOM 樹狀結構的最大深度。
  • 最多子項:子項元素最多的元素。

如何通過這項深入分析

只有在大型版面配置或樣式重新計算超過 40 毫秒時,這項洞察資訊才會失敗。

  • 大型版面配置更新包含超過 100 個版面配置物件 (大致上是元素)。
  • 大型樣式重新計算會影響超過 300 個元素。

如果失敗,這項洞察資訊會在「效能」面板的火焰圖中,醒目顯示這些事件。

如要降低這些活動的費用,請採取下列做法:

堆疊專屬指南

這項洞察資料也會針對使用下列技術的網頁,提供堆疊專屬的指引:

Angular

如果要轉譯大型清單,請使用元件開發套件 (CDK) 進行虛擬捲動

回應

  • 如要在網頁上轉譯許多重複的元素,建議使用「視窗化」程式庫 (例如 react-window),盡可能減少系統建立的 DOM 節點數量。
  • 使用 shouldComponentUpdatePureComponentReact.memo,盡量減少不必要的重新轉譯。
  • 如果你使用 Effect Hook 改善執行階段的效能,請略過效果,但某些相依性已變更時除外。

其他參考資料