NenoSan

浏览器架构

浏览器架构演进

进程分工

渲染进程

渲染进程——多线程架构

内部是多线程实现,主要负责页面渲染,脚本执行,事件处理,网络请求等。

JS引擎 VS 渲染引擎

JS引擎负责解析执行js,渲染引擎负责解析生成渲染树(HTML->DOM tree; CSS -> CSSOM tree) -> render tree,两者之间通过桥接方式通信

渲染进程-多进程工作流程

  1. 网络线程负责加载网页资源

  2. JS引擎解析js脚本并且执行

  3. JS解析引擎空闲时,渲染线程立即工作

  4. 用户交互,定时器操作等产生回调函数放入任务队列之中

  5. 事件进程进行事件循环,将队列里的任务取出交给JS引擎执行

Chrome运行原理