最新的 Chrome 133(開發者預覽版先行),官方則是透露將導入一個「功能如其名」會主動凍結(Freezing)背景分頁的省電模式新功能。繼續閱讀 Google Chrome 133 導入「凍結」新功能,省下資源又能保持工作狀態報導內文。
▲本篇圖片來源:Google
Google Chrome 133 導入「凍結」新功能,省下資源又能保持工作狀態
為了甩開狂吃猛佔資源的臭名,Google 去年開始逐步推送的記憶體/電力節約功能,更積極地從你目前沒有使用的分頁中釋放記憶體資源。先前更進一步為記憶體管理做出進化,帶來主動警示甚至是讓使用者依據電腦的環境與使用情境,更客製化 Chrome 的記憶體方式邏輯的「Performance issue alert」新設定。
來到最新的 Chrome 133(開發者預覽版先行),官方則是透露將導入一個「功能如其名」會主動凍結(Freezing)背景分頁的省電模式新功能。
看到這,應該很多第一時間就會想要詢問,到底它與以往那些針對沒有什麼在用的背景分頁暫停釋出系統資源的 discarding 方式有何不同?就官方的說法,這項功能與從記憶體中卸載分頁不同,是會在回到分頁的時候恢復繼續執行任務(就,會結凍就能解凍嘛~),不會丟失先前的執行狀態。
這項功能也有許多觸發條件。首先,它現階段需要開啟省電模式才會啟用。凍結功能也只會針對超過一定 CPU 用量門檻且已暫停超過 5 分鐘的分頁才會啟動。
此外,針對像是需要即時通知的聊天或電子郵件服務以及需要進行事件通知的行事曆服務。還有音訊、視訊會議以及需要控制外在裝置的網頁,則是會在這個新功能的例外範圍內。根據官方的說明:
在節能模式下凍結:當省電模式啟用時,如果其中任何同源框架的子群組超過 CPU 使用量門檻,Chrome 就會凍結已隱藏且靜默超過五分鐘的「瀏覽內容群組」
這項功能則是會針對事件處理器(Event Handlers)、計時器(Timers)與 Promise 解決函式(Promise Resolvers)等功能任務執行予以暫停。藉此更有效延長裝置的電池續航可用時間。針對要如何避免自己的網頁被列入會被凍結的範圍內,官方則是列出了幾個要點(機翻,詳細請閱讀參考資料連結的原文網址):
・避免使用計時器來定期檢查狀態變化。
。使用 IntersectionObserver 偵測元素何時進入視口。
。使用 ResizeObserver 監測元素大小變化。
。透過 MutationObserver 或自定義元素生命週期回呼處理 DOM 變化。
・考慮使用 Web Sockets、伺服器推送事件 (SSE)、推播訊息或 fetch streams,取代輪詢伺服器的方式。
・對於音訊或視訊變化,使用timeupdate
和ended
事件。
經由:Neowin|參考資料:Chrome for developers