废话少说,先来一张图,大致过一下浏览器的主要组成部分:
先解释下各部分是干啥的:
1:User Interface:用户界面,即我们所看到的浏览器;
2:Browser Endine:浏览器引擎,用来查询和操作渲染器引擎;
3:Rendering engine:渲染引擎,用来显示请求的内容,负责解析HTML、CSS;
4:Networking:负责网络请求;
5:Javascript Interpreter:js解析器,用来解析执行js代码;
6:Display Backend:UI后端,负责绘制组合框和弹出窗口;
7:Data Persistence: 数据持久化,数据存储,HTML5中的sessionStorage;
最后描述下浏览器的工作流程;
首先 Networking 向服务端发起网络请求=》服务端返回资源=》Networking将请求到的资源交给渲染引擎=》渲染引擎解析执行HTML、CSS=》当遇到js代码时,控制权交给js解析器,由它负责解析执行js代码,并将执行的结果返回给渲染引擎=》最后渲染引擎将解析执行的结果交给浏览器引擎=》浏览器引擎再将最终结果渲染到用户界面。
这就是一个简单完整的浏览器工作流程。大家有新的想法可以讨论补充。