在節能模式下凍結

François Doray
François Doray

發布日期:2025 年 1 月 20 日

自 Chrome 133 版 (2025 年 2 月) 起,節能模式啟用時,符合條件的 CPU 密集型背景分頁會凍結。這項功能旨在為依賴省電模式的使用者節省電池電量,因為對這類使用者來說,每百分點的電池續航力都很重要。為盡量減少中斷情形,只有符合特定條件且 CPU 使用率偏高的背景分頁才會遭到凍結。

什麼是凍結?

凍結可暫停網頁上的任務執行作業。包括:

  • 事件處理常式 (例如輸入、網路和感應器)
  • 計時器
  • Promise 解析器

凍結與捨棄不同,後者會從記憶體中卸載分頁。當凍結的分頁重新獲得焦點時,系統會自動解凍該分頁,並執行所有排隊的工作,且不會遺失狀態。

當網頁凍結或恢復時,系統會調度凍結和恢復事件 (請參閱網頁生命週期 API 說明文件)。這些事件可讓網頁釋放未使用的資源、通知伺服器網頁已暫停,或記錄指標。

哪些頁面可以凍結?

系統會在瀏覽內容群組上執行凍結作業。瀏覽內容群組通常只包含一個分頁。不過,使用 window.open() 等 API 時,多個分頁可以屬於同一個群組。

啟用節能模式後,瀏覽內容群組會在符合下列條件時凍結:

  • 群組內的所有頁面都已隱藏,且已靜默超過五分鐘。
  • 群組中任何同源框架的子群組都是「耗用 CPU 資源」。
  • 群組「不」
    • 提供音訊或視訊會議功能 (使用麥克風、攝影機、螢幕/視窗/分頁擷取,或具備「open」RTCDataChannel 或「live」MediaStreamTrack 的 RTCPeerConnection 偵測)。
    • 控制外部裝置 (使用 Web USB、Web Bluetooth、Web HID 或 Web Serial 偵測)。
    • 保留 Web Lock 或 IndexedDB 連線,以便封鎖群組外的作業。

「CPU 密集」的定義可能會有所變動,但我們的意圖是排除效率高效的電子郵件或即時通訊用戶端,或是會產生通知的日曆應用程式。

同時將同一瀏覽內容群組中的所有分頁凍結,可盡量減少使用彈出式視窗的應用程式 (例如撰寫訊息或輸入憑證) 的干擾情形。

如何準備網站?

如果網站沒有背景功能 (例如通知、檔案上傳或內容重新整理),就不會受到凍結的影響。

如果您的網站確實有背景功能,請盡量減少背景的 CPU 使用率,以免系統認為您的網站需要大量 CPU 資源,進而遭到凍結。以下提供一些提示:

我們也建議您將背景功能遷移至服務工作者,以免受到凍結的影響。除了不會受到凍結影響,服務工作站也需要較少的瀏覽器資源。建議使用:

網站可以參與 BackgroundPageFreezeOptOut 來源試用,選擇不採用凍結功能。一旦我們發布用於宣告重要背景工作的新 API (例如 Progress Notification API),這項試用方案就會終止。

您可以前往 chrome://discards 查看分頁是否符合凍結資格。請注意,即使分頁符合凍結資格,Chrome 133 也只會在 CPU 密集且省電模式處於啟用狀態時才會凍結分頁。

後續步驟

凍結背景分頁可節省電力,這對啟用省電模式的使用者來說十分重要。

這項功能還可減少 CPU 使用量和記憶體存取,進而改善前景分頁的效能,並避免背景分頁終止,特別是在資源受限的裝置上。因此,Chrome 會將分頁凍結功能擴大至更多情況 (變更內容會在 blink-dev@chromium.org 公布)。為盡量減少對背景用途的干擾,進度通知 API 等新 API 可讓網頁宣告重要的背景工作,並防止凍結。