整体流程:
-
解析HTML:浏览器解析HTML文档,构建DOM树
-
解析CSS:解析CSS样式表,构建CSSOM树
-
构建渲染树:将DOM树和CSSOM树合并,生成渲染树
-
布局计算:计算每个元素的位置和大小(重排)
-
绘制:将渲染树绘制到屏幕上(重绘)
详细步骤:
HTML解析:
-
从上到下解析HTML标签
-
遇到script标签会阻塞解析
-
构建DOM节点树
CSS解析:
-
解析CSS规则
-
构建CSSOM树
-
计算样式优先级
渲染树构建:
-
只包含可见元素
-
合并DOM和CSSOM信息
-
确定每个节点的样式
布局阶段:
-
计算元素的位置和尺寸
-
确定每个节点在屏幕上的确切位置
绘制阶段:
-
将渲染树转换为屏幕上的像素
-
包括文本、颜色、图像等
优化建议:
-
减少重排重绘
-
合理使用CSS
-
避免阻塞渲染的脚本
这个流程是浏览器将代码转换为用户可见页面的核心过程。