游覽器渲染

132 阅读2分钟

游覽器繪製原理

是指浏览器从最初接收请求来的HTML、CSS、javascript等资源,然后解析、构建树、渲染布局、绘制,最后呈现给客户能看到的界面这整个过程。


在此之前我們先要瞭解三棵樹。分別是DOM、CSSOM、渲染樹。

1、DOM樹

DOM樹就是HTML樹。描述内容游覽器内容;

2、CSSOM樹

描述需要对文档应用的样式规则

3、渲染樹

CSSOM 树和 DOM 树合并成渲染树,然后用于计算每个可见元素的布局,并输出给绘制流程,将像素渲染到屏幕上。步驟如下:

  • DOM 树与 CSSOM 树合并后形成渲染树。
  • 渲染树只包含渲染网页所需的节点。
  • 布局计算每个对象的精确位置和大小。
  • 最后一步是绘制,使用最终渲染树将像素渲染到屏幕上。

合并后示意圖:

为了构建渲染树游览器大致做了以下的内容:

1.从 DOM 树的根节点开始遍历每个可见节点。

  • 某些节点不可见(例如脚本标记、元标记等),因为它们不会体现在渲染输出中,所以会被忽略。
  • 某些节点通过 CSS 隐藏,因此在渲染树中也会被忽略,例如,上例中的 span 节点不会出现在渲染树中,因为有一个显式规则在该节点上设置了“display: none”属性。
  1. 对于每个可见节点,为其找到适配的 CSSOM 规则并应用它们。
  2. 发射可见节点,连同其内容和计算的样式。

事实上简述内容看起来很简单,实际上要完成相当多的任务。如果 DOM 或 CSSOM 被修改,您只能再执行一遍以上所有步骤,以确定哪些像素需要在屏幕上进行重新渲染。