浏览器的主要组件有:
- user interface。地址栏
- browser engine。
- rendering engine。负责渲染请求的返回的内容。如html,css
- networking。如http请求
- ui backend。用来绘制一些小盒子,窗口
- js interpreter。解析执行js
- data storage。cookie,localstorage
rendering engine的流程
通过network获取的数据。
- parse。会生成一个树,content tree(dom nodes)
- render tree construction。render tree的节点是长方形,有一些visual 属性(如color,dimension)
- layout。将render tree的节点进行定位。
- paint。遍历render tree绘制。
这是一个渐进的过程。它不会等所有的html被解析完,才开始构建渲染render tree。