1.渲染引擎
渲染引擎的作用:负责对页面语法的解释,把 html、css 分别用 parser 解析成 dom 和 cssom,然后合并到一起,并计算布局样式成绝对的坐标,生成渲染树,之后把渲染树的内容复制到显存就可以由显卡来完成渲染。
2.js引擎
js引擎的作用:负责对JavaScript进行解释、编译和执行,以使网页达到一些动态的效果。
js 引擎包括 parser、解释器、gc 再加一个 JIT 编译器这几部分
第一步.DOM构造
1.HTML解析出DOM树(DOM Tree):
浏览器首先将收到的HTML代码,通过html解析器解析构建一颗DOM树(DOM Tree)
2.CSS解析出样式表规则(Style Rules),也叫做CSSOM(CSS Object Model)
浏览器将接受到的css代码,通过css解析器构建出样式表规则(Style Rules)
3.将二者关联生成渲染树(Render Tree)
将这些规则分别放到对应的DOM树节点上,得到一颗渲染树(Render Tree)---带有样式属性的DOM树
第二步.布局
浏览器按从上到下,从左到右的顺序,计算和读取Render Tree每个节点信息。将树上的节点压入文档流然后布局。
第三步.绘制页面
Painting 根据计算好的信息绘制整个页面
Chrome浏览器四个主要进程的关系: 当我们要浏览一个网页时,输入URL,浏览器进程向URL发送请求,获取到HTML内容后将其交给渲染进程,渲染进程解析HTML内容,解析中遇到新的网络资源再返回给浏览器进程加载,同时告知浏览器进程需要通知插件进程加载插件。解析完成后,渲染进程计算得到图像帧,将图像帧交给GUP进程,GUP进程将图像显示出来。
多进程架构的好处: 1.容错性高,渲染引擎容易崩溃,多进程的每个页面的渲染引擎互相之间不受影响; 2.安全性高,不同进程的权限不同,并为其提供沙盒运行环境,使其更加安全可靠; 3.响应速度快,单进程架构中各个任务互相竞争抢夺CPU资源,响应速度缓慢,多进程架构规避了这一点。