经过HTTP请求之后,浏览器收到了HTML文档
1.浏览器解析HTML文件
浏览器从上到下,逐行解析HTML标签 ,解析结束HTML文档之后会形成DOM树
解析HTML文档过程:
首先,浏览器得到的是显示字节内容的html文件
浏览器将字节内容转换为字符文件
将字符转换为token(符号标签)
将token转变为节点对象,然后将节点对象连接起来形成DOM树
(2).在HTML文档解析的过程中,会遇到link标签外链的css文件这时候会请求并解析css文件,但并不会阻塞第一步解析HTML文件
解析css过程:
前几个步骤与HTML文档解析相似:字节文件>字符文件>token>节点对象
最后一步会将节点对象结合为CSSOM树
(3).在HTML解析时,遇到link标签外链的js文件或者script内的js代码时
解析JS文件的过程:
1)浏览器会请求js代码,并返回,这时候HTML文件的解析会停下来,
2)但是CSS文件的解析不会停止,所以会构造出CSSOM树,
3)在构建CSSOM树的时候,返回的js文件并不会执行,在CSSOM树构建完成,才会运行JS文件。
4)JS文件执行结束后,HTML继续解析并构建出DOM树,进行下一步。
(4)前两步结束之后,DOM树和CSSOM树会结合生成渲染树render树。
注意点:DOM树会将所有节点都组成树结构,而render树会将所有显示的阶段组成树结构。
(5)布局:获取渲染树结构、节点位置和大小
(6)绘制,根据render树和布局绘制页面