高级前端
前端工程化
【Q386】什么是浏览器的关键渲染路径

什么是浏览器的关键渲染路径

Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 391 (opens in a new tab)

Author 回答者: shfshanyue (opens in a new tab)

01 DOM

生成 DOM 会从远程下载 Byte,并根据相应的编码 (如 utf8) 转化为字符串,通过 AST 解析为 Token,生成 Node 及最后的 DOM。

以下图片来自于 构建 OM - Google Developers (opens in a new tab)

AST 解析过程可以查看 https://astexplorer.net/ (opens in a new tab)

HTML Parse

可以通过 devtools 中查看该过程

HTML Parse By devtools

02 CSSOM

当解析 CSS 文件时,最终会生成 CSSOM

CSSOM Image

03 Render Tree

DOM 与 CSSOM 会一起生成 Render Tree,只包含渲染网页所需的节点。

render tree

04 Layout

计算每一个元素在设备视口内的确切位置和大小

以下图片来自于 关键渲染路径 - 掘金 (opens in a new tab)

Layout

05 Paint

将渲染树中的每个节点转换成屏幕上的实际像素,这一步通常称为绘制或栅格化

Paint