浏览器概述(持续更新中)

浏览器中主要的进程

  • 主进程(管理子进程,和系统交互)
  • 网络进程
  • GPU进程(与GPU交互)
  • 渲染进程(沙盒,不直接与系统交互,需要通过主进程中转)
  • 插件进程

从用户输入到页面展示的整个过程的主要阶段

进程间通过IPC通信

  1. 用户输入
  2. 主进程处理用户输入为完整的url,提交给网络进程
  3. 网络进程发起请求(域名的话需要先请求DNS获取ip),获得响应头、响应体
  4. 主进程读取网络进程的响应头(响应码为:301、302则使用location重复步骤3),返回了html(content-type: text/html),创建渲染进程,完成后向渲染进程发送“提交文档”
  5. 渲染进程接收到“提交文档”消息,与网络进程建立通道,拉取响应体,向主进程发送“确认提交文档”
  6. 主进程执行导航结束的相关操作(删除上个页面的数据,页面空白、更新历史栈,停止转圈)
  7. 渲染进程创建主线程解析html,创建预解析线程解析html中的请求;(因为响应体是字节流,拉取一部分解析一部分)
  8. 构建dom
  9. 构建cssom
  10. 生成布局树
  11. 生成层树
  12. 生成绘制指令列表
  13. 合成线程将层分块(图块有优先级,离视口越近优先级越高),传给合成线程维护的栅格化线程池
  14. 栅格化线程处理图块需要GPU参与,通过GPU进程与GPU通信,在GPU生成位图并保存在GPU内存中,主要图块完成后给主进程发送“绘制”指令
  15. 主进程收到“绘制”指令,绘制页面并保存在内存中,第一次上传一个低分辨率(分辨率低一半,纹理降低四分之三)的图,避免白屏太久。
  16. 上传到显示器的后缓存区,前后缓存区交替,60HZ的话,1s最多可以交替60次。

导航阶段:2 -> 6

渲染阶段:7 -> 14

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值