前端学习-界面渲染过程

389 阅读2分钟

界面渲染过程

  • 1 地址栏输入 url 地址
  • 2 DNS 会完成域名解析, 帮我们找到相应的服务器主机
  • 3 建立 TCP 的端到端连接(将你的电脑跟接勾的服务器主机建立一条传输数据的通道)
  • 4 因为 TCP 是处于网络模型中的传输层,而具体的 BS架构数据传输是发生在应用层,所以我们需要通过应用层的 http 协议来跟服务器主机进行数据交换
  • 5 服务端会依据客户端提交的数据进行计算,从而返回具体的内容给到客户端
  • 6 第五步完成之后就相当于浏览器此时就拿到了网页资源数据(字符串)【 网络IO 磁盘IO 操作的是二进制数据】
  • 7 浏览器拿到了字节数据之后就想要对它进行渲染,然后展示在界面上

浏览器多进程

  • 多个渲染进程
    Html css js 相关的操作
  • 插件进程
    针对于浏览器插件的处理
  • 浏览器主进程
    管理浏览器本身的一些操作
  • GPU 进程
    最初就为了实现 3D动画
  • 网络进程
    下载网络资源的

浏览器如何渲染界面

  • a 渲染进程里就会开启一个进程调用 Html 解析器来执行渲染
  • b 首先会将字节数据处理成字符串,然后再从字符串里挑出来对应的 Token(标签),最后再将这些标签放在一起生成一个 DOM 树
  • c 与 DOM树构建同时的还有一个 CSSOM 树的构建过程
  • d 将DOM树和 CSSOM 树进行合并生成了渲染树 (存在于内存里的东西,浏览器界面上看不见)
  • e 依据渲染树进行回流( 重排 ) 可以依照之前树来确定界面上人他们的几何信息(大小、位置)
  • f 重排之后就会进行重绘,将上面计算出来的所有信息都通过 GPU 调用相应 GUI API 针后绘制在屏幕上
  • g 之后就可以看到界面了