客户端容器|青训营笔记

112 阅读2分钟

写在前面

主要了解多线程架构,渲染进程任务,渲染进程任务

浏览器结构演进

  1. 单进程架构:所有模块运行在同一个进程里,包含网络、插件、JavaScript运行环境等
  2. 多进程架构:主进程、网络进程、渲染进程、GPU进程、插件进程。这种架构可以提高稳定性和安全性,因为一个标签页崩溃了不会影响其他标签页的运行。 3.面向服务架构:将原来的UlI、数据库、文件、设备、网络等,作为一个独立的基础服务

js引擎

  1. 解析器:将JavaScript代码解析为可执行的指令。
  2. 编译器:将JavaScript代码转换为机器代码,以提高执行速度。
  3. 内存管理:跟踪变量和对象的使用,并在不再需要它们时释放内存。
  4. 执行器:执行JavaScript代码并将结果返回给用户。
  5. 优化器:优化代码以提高执行速度和性能。
  6. 调试器:帮助开发人员查找和修复代码中的错误。
  7. 异步处理:通过提供异步函数和回调函数来处理异步任务,从而提高性能和响应能力。
  8. JIT编译器:在代码执行时动态编译代码,以提高执行速度。

多线程的工作流程

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

跨端容器

跨端容器-通用原理

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

chrome运行原理

  1. 输入处理
  2. 开始导航
  3. 读取响应
  4. 寻找渲染进程

寻找渲染进程 ·资源加载 建构渲染树 页面布局 页面绘制

  1. 解析 HTML 和 CSS:渲染进程需要将网页的 HTML 和 CSS 解析成浏览器可以理解的内部数据结构,例如 DOM 和 CSSOM。
  2. 构建渲染树:渲染进程会根据 DOM 和 CSSOM 构建出渲染树,该树包含了网页的可视化元素和样式信息。
  3. 布局和绘制:根据渲染树中的元素信息,渲染进程需要对页面进行布局和绘制,生成最终的像素图像。
  4. 处理用户输入和交互:渲染进程需要负责处理用户的输入事件(点击、滚动,并且根据用户的操作更新渲染树和渲染结果。
  5. 执行 JavaScript:渲染进程还需要执行页面中的 JavaScript 代码,如响应用户事件、更新网页内容等。