避免使用非合成動畫
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
非複合型動畫在低階手機上或主要執行緒上執行效能繁重的工作時,可能會顯示「資源浪費」 (不流暢)。動畫浪費會增加網頁的累計版面配置位移 (CLS)。減少 CLS 將可改善 Lighthouse 效能分數。
背景
瀏覽器用於將 HTML、CSS 和 JavaScript 轉換成像素的演算法,統稱為「轉譯管道」。
算繪管道。
即使您不瞭解轉譯管道的每個步驟也沒關係。您現在需要瞭解的重點是,在轉譯管道的每個步驟中,瀏覽器都會使用上一個作業的結果來建立新資料。舉例來說,如果您的程式碼會觸發版面配置的內容,就必須再次執行「Paint」和「複合」步驟。非複合動畫是指在轉譯管道 (樣式、版面配置或繪製) 中觸發前一步驟的任何動畫。非合成動畫會強制瀏覽器執行更多作業,因此效能較差。
請參閱下列資源,深入瞭解轉譯管道:
Lighthouse 如何偵測非合成動畫
如果無法合併動畫,Chrome 會向開發人員工具的追蹤記錄回報失敗原因,也就是 Lighthouse 讀取的內容。Lighthouse 會列出 DOM 節點(包含未合成的動畫),以及每個動畫的失敗原因。
如何確保製作動畫
請參閱「繼續使用僅限合成屬性並管理圖層數量」和「高效能動畫」。
資源
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2020-08-12 (世界標準時間)。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"缺少我需要的資訊"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"過於複雜/步驟過多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"過時"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻譯問題"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/程式碼問題"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"容易理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"確實解決了我的問題"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]
{
"lastModified": "上次更新時間:2020-08-12 (世界標準時間)。",
"confidential": False
}