无论网站是动态的,还是静态,最终返回客户端的都是HTML代码。
这些HTML代码会经过浏览器的处理,最终将各种各样的页面展现在用户面前。
下面介绍一下浏览器对HTML代码的渲染流程。
一.浏览器解析:
(1).DOM:
DOM对象是浏览器解析HTML脚本生成的,最终输出一个树状结构的对象。
(2).CSSOM:
CSSOM对象是浏览器解析CSS脚本生成的,最终也是输出类似DOM的树状结构。
(3).RenderTree:
DOM与CSSOM 融合成一棵RenderTree(渲染树),随后计算每个可见元素的布局,并输出给绘制过程,在屏幕上渲染像素。优化这里的每一步对实现最佳渲染性能至关重要。
构建的过程如下:
二.布局:
有了渲染树,就进入布局阶段。根据渲染树种确定的每个DOM元素的样式规则,浏览器就能具体计算每个DOM元素最终在屏幕上显示的大小位置,宽高等等几何属性。由于文档流中的布局是相对的,因此每个元素的布局发生变化,会联动引发其他元素的布局变化。
三.绘制:
绘制就是在已确定了几何属性的元素上填充像素,比如绘制文字,颜色,图像,边框,阴影等等可视元素。
这期间会产生多个图层。
合并渲染层:
到这里,浏览器的渲染过程就接近尾声。每个图层绘制完,浏览器会将其按照合理的顺序合并到同一图层,并显示在浏览器上。
四.工具:
借助ChromeDevTools等工具,我们能深入了解浏览器处理的整个过程。
原文发布时间为:2017-4-9
本文作者:admin
本文来自云栖社区合作伙伴“蚂蚁部落”,了解相关信息可以关注蚂蚁部落