HTML layout caching
HTML 文字、效能、頁面版面
描述
HTML 量測與繪製方法會在每個繪圖器上自動共用有界快取的版面計畫
第一次請求會剖析來源、解析 CSS、計算行、Flexbox、Grid、表格與註腳幾何,並記錄產生的文字、影像、邊框、背景與連結操作,不寫入頁面內容串流
符合的繪製請求會在指定位置重播這些操作,不必再剖析或量測 HTML
受影響的方法
GetHTMLTextHeightGetHTMLTextWidthGetHTMLTextLineCountDrawHTMLTextDrawHTMLTextBoxDrawHTMLTextMatrixDrawHTMLTextBoxMatrix
快取識別
版面計畫的匹配依據是完整 HTML 來源、可用寬度、選配的接續高度、字型集合、文字間距、equivalent-tag 規則、綁定影像的身分與尺寸,以及 kerning 模式繪製位置刻意不列入匹配,因此同一份量測好的計畫可以在多個位置重播,斷行完全一致
更換 HTML 字型、影像綁定或 equivalent-tag 規則時,會清掉可能殘留過期物件參照的版面計畫邊界與逐出策略:每個 painter 最多保留八個最近使用的計畫,並且通常把它們的估算記憶體限制在 32 MiB
單一超出記憶體目標的版面計畫仍會保留供立即繪製使用,之後再被其他活動取代,避免出現無上限的整份文件快取
測量安全性
每個繪圖器最多保留八份最近使用的計畫,估計記憶體通常限制在 32 MiB
單一計畫超過記憶體目標時,仍可供緊接的繪製使用,之後由後續活動替換,避免無上限的整份文件快取
量測安全性
量測會把帶樣式的背景、表格邊框、影像與連結記為延遲操作,不附加到所選頁面
DrawHTMLTextBox 的接續結果與重播所用的高度受限計畫一起儲存