正在回答 回答被采纳积分+1
同学你好,首先需要了解几个概念,以便于帮助理解浏览器的渲染过程。
1、概念说明:
(1)DOM Tree:浏览器将HTML解析成树形的数据结构
(2)CSS Rule Tree:浏览器将CSS解析成树形的数据结构(CSSOM)
(3)Render Tree:DOM和CSSOM合并后生成Render Tree
(4)layout:有了Render Tree,浏览器已经能知道网页中有哪些节点、各个节点的CSS定义以及他们的从属关系,从而去计算出每个节点在屏幕中的位置
(5)painting:按照算出来的规则,通过显卡,把内容画到屏幕上
2、了解了以上概念,我们来看一下浏览器的渲染流程图:
也就是说,浏览器的渲染流程大致如下:
(1)浏览器会将HTML解析成一个DOM树,DOM 树的构建过程是一个深度遍历过程(当前节点的所有子节点都构建好后才会去构建当前节点的下一个兄弟节点)
(2)将CSS解析成 CSS Rule Tree
(3)根据DOM树和CSSOM来构造Render Tree
(4)有了Render Tree,浏览器已经能知道网页中有哪些节点、各个节点的CSS定义以及他们的从属关系。下一步操作称之为layout,顾名思义就是计算出每个节点在屏幕中的位置。
(5)再下一步就是绘制,即遍历render树,并使用UI层绘制每个节点(可以理解为设置颜色、背景色等等)。
注意:上述这个过程是逐步完成的,为了更好的用户体验,渲染引擎将会尽可能早的将内容呈现到屏幕上,并不会等到所有的html都解析完成之后再去构建布局(CSSOM)和render树。它是解析完一部分内容就显示一部分内容,同时,可能还在通过网络下载其余的网页内容。
希望可以帮到你,祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星