客户端容器 | 青训营笔记

66 阅读3分钟

课程笔记5.png

这是我参与「第1届 前端训练营」笔记创作活动的第5天

一、重点内容介绍🎈

  • 浏览器架构
  • 渲染进程
  • Chrome运行原理
  • 跨端容器

二、详细知识点🍗

2.1 浏览器架构

浏览器架构模式

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

问题1:为什么会有单进程架构?

  • 单进程架构是为了提高单个进程的性能和可靠性,因为多进程或多线程之间切换会带来额外的开销,而单进程架构能够避免这种开销,从而提高系统的响应速度和稳定性。

问题2:面向服务架构是否会替代多进程架构?

  • 面向服务架构(SOA)和多进程架构是两种不同的架构设计理念。
  • SOA采用微服务的形式,将功能划分为独立的服务,通过网络进行通信和交互,实现松耦合和高内聚;而多进程架构则是在一个应用程序内使用多个进程,各个进程之间通过进程间通信进行通信和协作。从
  • 长远来看,SOA有望取代多进程架构,因为SOA可以更好地满足分布式系统的要求,使得系统更加灵活、可扩展和稳定。
  • 但是SOA本身也有一些缺点,如服务拆分和管理成本较高等问题,需要在设计和实施时进行综合考虑。

2.2 渲染进程

多线程渲染的工作流程:

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

2.3 Chrome运行原理

Chrome运行原理

  • 浏览器地址栏输入url后,会先对url进行处理:判断输入的是url还是query查询条件
  • 然后开始导航:UI线程通知网络线程发起一个网络请求,来获取站点内容
  • 内核读取响应:首先检查响应头的媒体类型,如果是HTML文件,则浏览器将内容交给渲染进程处理,如果是其他文件,则交给下载管理器处理
  • 同时渲染进程开始工作,渲染完成后通知主进程获取。

渲染优化

  • GPU加速
  • 减少回流、重绘
  • 离屏渲染
  • 懒加载

2.4 跨端容器

有哪些跨端方案

  • WebView
  • 小程序
  • PN/WeeX
  • Lynx
  • Flutter

使用WebView的优势

  • 一次开放,处处使用,学习成本低
  • 随时发布,即时更新
  • 性能有保障
  • 通过JSBridge和原生态交互,实现复杂功能

通用原理

  1. UI组件
  2. 渲染引擎
  3. 逻辑控制引擎
  4. 通信桥梁
  5. 底层api抹平表现差异

三、思考与总结💡

通过今天的学习,我了解了很多关于浏览器架构,渲染进程,Chrome运行原理以及跨端容器的知识。