chromium渲染页面流程(三棵树)

总结:DOM树-->渲染树-->layer树(render layer和 graphic layer)-->cc合成树

1.节点和DOM树
  网页的内容在内部存储为称为DOM树的Node 对象树。
页面上的每个HTML元素以及元素之间出现的文本都与节点相关联。DOM树的顶级节点始终是文档节点。


2.从节点到RenderObjects(渲染树)
  DOM树中生成可视输出的每个节点都有一个相应的RenderObject。RenderObjects存储在并行树结构中,称为渲染树。RenderObject知道如何在显示表面上绘制节点的内容。它通过向GraphicsContext 发出必要的绘制调用来实现。GraphicsContext负责将像素写入最终显示在屏幕上的位图。在Chrome中,GraphicsContext包含了我们的2D绘图库Skia。

  传统上,大多数GraphicsContext调用都是对SkCanvas或SkPlatformCanvas的调用,即立即绘制成软件位图。但是要将绘画移离主线程,现在这些命令会被记录到SkPicture中。SkPicture是一个可序列化的数据结构,可以捕获然后重放命令,类似于显示列表。 

3.从RenderObjects(渲染树)到RenderLayers(layer树)

每个RenderObject 直接或间接通过祖先RenderObject 与RenderLayer 相关联。

共享相同坐标空间的RenderObjects(例如受同一CSS变换影响)通常属于同一个RenderLayer。存在RenderLayers,以便以正确的顺序合成页面的元素以正确显示重叠内容,半透明元素等。有许多条件会触发为特定

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值