HTML layout caching
HTML 文本、性能、页面布局
描述
HTML 测量和绘制方法会在每个绘制器上自动共享有界缓存布局计划
首次请求会解析源内容、解析 CSS、计算行、Flexbox、Grid、表格和脚注几何信息,并记录生成的文本、图像、边框、背景和链接操作,而不写入页面内容流
匹配的绘制请求会在请求位置重放这些操作,而不是再次解析或测量 HTML
受影响的方法
GetHTMLTextHeightGetHTMLTextWidthGetHTMLTextLineCountDrawHTMLTextDrawHTMLTextBoxDrawHTMLTextMatrixDrawHTMLTextBoxMatrix
缓存标识
计划会按完整 HTML 源、可用宽度、可选延续高度、字体集、文本间距、等效标签规则、绑定图像标识和尺寸以及字距调整模式匹配
绘制位置被有意排除,因此同一个测量计划可在多个位置重放而不会改变换行
更改 HTML 字体、图像绑定或等效标签规则会清除可能保留过时对象引用的计划
边界和逐出
每个绘制器最多保留八个最近使用的计划,且通常将其估计内存限制为 32 MiB
超过内存目标的单个计划仍可立即用于绘制,并会由后续活动替换,避免形成无界的全局文档缓存
测量安全性
测量会将带样式背景、表格边框、图像和链接记录为延迟操作,并且不会将它们附加到选定页面
DrawHTMLTextBox 的续页结果会与同一高度受限布局方案一同保存,以供重放