首页 > 代码库 > 前端进阶——浏览器页面渲染过程

前端进阶——浏览器页面渲染过程

一 、构建 DOM 和 CSSOM 树

浏览器渲染页面前需要先构建 DOM 和 CSSOM 树。

浏览器解析过程大概经过:字节 → 字符 → 令牌 → 节点 → 对象模型。

浏览器处理html页面的方式如下图:

技术分享

1、转换:浏览器从磁盘或网络读取HTML的原始字节,并根据文件指定的编码将它们转换成各个字符

2、令牌化:浏览器将字符串转换成W3C HTML5标准规定的各种令牌(节点)

3、词法分析:发出的令牌转换成定义其属性和规则的对象

4、DOM构建:根据标记之间的关系构建dom

整个流程的最终输出是这个页面的文档对象模型(DOM),浏览器对页面进行的所有进一步处理都会用到它。

与处理HTML异议,我们将收到的CSS规则转换成浏览器能理解和处理的,我们会重复和html类似的过程:

技术分享 

CSS字节转化成字符,接着转换成令牌和节点,最后链接成CSS对象模型(CSSOM)

 二、渲染树构建、布局及绘制

DOM和CSSOM构建完成以后,需要合成为渲染树。构建渲染树的工作大概如下:

1、从DOM树的根节点开始遍历每个可见节点

2、对于每个可见节点,为其找到适配的CSSOM规则规则并应用

3、输出可见节点,连同其内容和计算的样式

有了渲染树下一步就是布局,布局的做的主要是计算每个节点在页面上的确切位置和大小。

最后一步,我们是将渲染树的每个节点转换成屏幕上的实际像素,这一步成绘制。

三、总结

浏览器构建的步骤,大概如下:

1、处理HTML标记并构建DOM树

2、处理CSS标记并构建CSSOM树

3、将DOM与CSSOM合并成一个渲染树

4、根据渲染树来布局,以计算每个节点的集合信息

5、将各个节点绘制到屏幕

前端进阶——浏览器页面渲染过程