素材巴巴 > 程序开发 >

DOM渲染原理

程序开发 2023-09-10 09:38:08

浏览器渲染过程

1. 构建DOM树

Critical Path

Hello web performance students!

无论是DOM还是CSSOM,都是要经过Bytes → characters → tokens → nodes → object model这个过程。

3VgNPe.png?ynotemdtimestamp=1582118977354uploading.4e448015.gif转存失败重新上传取消image

DOM树构建过程:当前节点的所有子节点都构建好后才会去构建当前节点的下一个兄弟节点。

2. 构建CSSOM树

上述也提到了CSSOM的构建过程,也是树的结构,在最终计算各个节点的样式时,浏览器都会先从该节点的普遍属性(比如body里设置的全局样式)开始,再去应用该节点的具体属性。还有要注意的是,每个浏览器都有自己默认的样式表,因此很多时候这棵CSSOM树只是对这张默认样式表的部分替换。

3. 生成render树

DOM树和CSSOM树合并生成render树

3VgMvR.png?ynotemdtimestamp=1582118977354uploading.4e448015.gif转存失败重新上传取消image

简单描述这个过程:

DOM树从根节点开始遍历可见节点,这里之所以强调了“可见”,是因为如果遇到设置了类似display: none;的不可见节点,在render过程中是会被跳过的(但visibility: hidden; opacity: 0这种仍旧占据空间的节点不会被跳过render),保存各个节点的样式信息及其余节点的从属关系。

4. Layout 布局

有了各个节点的样式信息和属性,但不知道各个节点的确切位置和大小,所以要通过布局将样式信息和属性转换为实际可视窗口的相对大小和位置。

5. Paint 绘制

万事俱备,最后只要将确定好位置大小的各节点,通过GPU渲染到屏幕的实际像素。

Tips

3VgJUO.png?ynotemdtimestamp=1582118977354uploading.4e448015.gif转存失败重新上传取消image

何时触发reflow和repaint


标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。