客户端容器 | 青训营笔记

33 阅读2分钟

客户端容器

浏览器架构

演进

  1. 单进程架构:所有模块运行在同一个进程里,包含网络、插件、JavaScript运行环境等
  2. 多进程架构:主进程、网络进程、渲染进程、GPU进程、插件进程
  3. 面向服务架构:将原来的UI、数据库、文件、设备、网络等,作为一个独立的基础服务

浏览器架构变迁 浏览器各架构对比 多进程架构介绍

渲染进程

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

渲染进程多线程架构 JS引擎VS渲染引擎

多线程工作流程

  1. 网络线程负责加载网页资源
  2. JS引擎解析JS脚本并且执行
  3. JS解析引擎空闲时,渲染线程立即工作
  4. 用户交互、定时器操作等产生回调函数 放入任务队列中
  5. 事件线程进行事件循环,将队列里的任 务取出交给JS引擎执行

chrome运行原理

主进程工作流程 渲染进程工作流程 浏览器性能优化

输入处理

  1. 用户Url框输入内容的后,UI线程会判断输 入的是一个URL地址呢,还是一个query查 询条件
  2. 如果是URL,直接请求站点资源
  3. 如果是query,将输入发送给搜索引擎

开始导航

  1. 当用户按下回车,UI线程通知网络线程 发起一个网络请求,来获取站点内容
  2. 请求过程中,tab处于loading状态

读取导航

  1. 网络线程接收到HTTP响应后,先检查 响应头的媒体类型(MIME Type)
  2. 如果响应主体是一个HTML文件,浏览 器将内容交给渲染进程处理
  3. 如果拿到的是其他类型文件,比如Zip、 exe等,则交给下载管理器处理

寻找渲染进程

  1. 网络线程做完所有检查后,会告知主进 程数据已准备完毕,主进程确认后为这 个站点寻找一个渲染进程
  2. 主进程通过IPC消息告知渲染进程去处 理本次导航
  3. 渲染进程开始接收数据并告知主进程自 己已开始处理,导航结束,进入文档加 载阶段

跨端容器

跨端的由来

  1. 开发成本、效率
  2. 一致性体验
  3. 前端开发生态

常见的跨端方案

• webview
• 小程序
• RN/WeeX
• Lynx
• Flutter