(1). 浏览器收到HTML文档,HTML相当于网页的框架结构
? ? ? ? 解析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树和布局绘制页面