[web] 瀏覽器轉譯與效能檢測(Browser rendering and Performance Analyze)
keywords: render
, paint
, fps
, performance
, devtool
, chrome
, browser
目錄
[TOC]
重要觀念
Frames Per Second (FPS)
時下大多數裝置會以 每秒 60 次 的頻率更新 螢幕。因此,每個畫面(frame)可使用的更新時間只有大約 16ms (1 秒 / 60 = 16.66ms)。 在現實中,瀏覽器還有其他例行任務需要執行,因此您的所有工作必須在 10ms 內完成,否則畫面率就會下降,而螢幕上的內容會顫動(judders)。 這通常稱為 閃避(jank),這會負面影響使用者體驗。
像素管道(Pixel Pipeline)
在轉譯的過程中,下圖中任何一個部分的改變都有可能引起閃避,因此需要清楚知道你的程式碼影響到的是下圖中的哪一個部分:
改變版面配置(Layout)將觸發重繪和合成
當你改變了元素的 width
, height
, position
的 left
或 top
位置時,會改變到 layout 屬性,此時瀏覽器需要重新計算每一個元素的位置,每一個被影響到的區域都需要被重繪(repainted),接著繪製完成的元素需要再被合成(composite)。