浏览器渲染原理

本文详细阐述了浏览器渲染过程,涉及HTML解析、DOM/CSSOM树构建、样式计算、布局、分层、绘制指令生成以及合成线程中的分块、光栅化和真实绘制,强调了主线程与合成线程的分工与效率提升机制。
摘要由CSDN通过智能技术生成

1.浏览器渲染原理

1.主线程

1.解析html
  • 在当前阶段,html 将被解析成DOM树与CSSOM树;
2.计算样式
  • 在当前阶段,遍历DOM树,结合CSSOM树,依次为每个节点计算出最终样式,即 Computed Style
  • reflow 发生在当前阶段,若是出现 reflow,必然导致 repaint 发送;
3.布局
  • 在当前阶段,遍历DOM树,计算每个节点的几何信息,生成相应的布局树,需要注意的是,DOM树与布局树并不一定是一一对应的
4.分层
  • repaint 可能发生在当前阶段;
  • 滚动条、堆叠上下文、transformopacity 等样式属性都会或多或少的影响分层结果,也可以通过 will-change 属性来更大程度的影响分层结果;
5.生成绘制指令
  • repaint 可能发生在当前阶段;
  • 主线程会为每一层单独生成绘制指令集,用于描述这一层该如何绘制、渲染;

2.合成线程

1.分块
  • 分块的工作是交由多个线程同时进行的,可以通过任务管理器提取浏览器进程信息进行验证查看;
  • 分块的工作是将每一层,分成多个小的区域,以便后续可以根据不同的优先级进行绘制、提高绘制效率;
2.光栅化
  • 光栅化的工作,实际上是通过合成线程,交由GPU进程来实现的,GPU进程会开启多个线程来完成光栅化,并且会优先处理靠近视口区域的块;
3.真实绘制
  • transform 发生在合成线程,而不是主线程,这就是 transform 效率高的本质原因;
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值