返回
浏览器探究之渲染流程(3)
前端
2024-01-27 14:38:08
浏览器探究之渲染流程(3)
浏览器运行机制里面渲染部分主要由浏览器完成,上一篇已经了解了浏览器Network线程做完安全检查后,会把任务交给UI线程,UI线程所属进程——Browser进程会通过IPC(进程间通信)告诉Rende Process(渲染进程)开始渲染。
Rende Process 进程
Rende Process 进程负责把HTML文档解析为DOM树,完成CSS选择器匹配,计算布局,绘制,分块(把文档切分为小块),最后再把这些小块组合成一个位图并显示。
详细解析
-
解析HTML文档为DOM树
- HTML文档是一个文本文件,需要被解析成DOM树才能被浏览器理解。
- DOM树是一个层次结构,它了HTML文档中的元素及其之间的关系。
- DOM树的根节点是html元素,它的子节点是head元素和body元素。
- head元素包含了文档的元数据,如标题、作者和关键词。
- body元素包含了文档的主体内容,如段落、列表和表格。
-
完成CSS选择器匹配
- CSS选择器用于从DOM树中选择元素。
- CSS选择器可以根据元素的名称、ID、类名、属性或其他特征来选择元素。
- 当CSS选择器匹配到一个元素时,该元素将被应用CSS规则。
-
计算布局
- 布局计算是指确定DOM树中元素的位置和大小。
- 布局计算是通过CSS盒模型来完成的。
- CSS盒模型把每个元素都看作一个盒子,盒子有四个边框:上边框、下边框、左边框和右边框。
- 盒子的内容区域是盒子内部的区域,它不包括边框和内边距。
- 盒子的填充区域是盒子内容区域与边框之间的区域。
- 盒子的边距区域是盒子与其他元素之间的区域。
-
绘制
- 绘制是指把DOM树中的元素绘制到屏幕上。
- 绘制是通过图形API(如OpenGL或DirectX)来完成的。
- 图形API提供了一组函数,这些函数可以用来绘制各种图形元素,如矩形、圆形和文本。
-
分块
- 分块是指把文档切分为小块。
- 分块是为了提高渲染性能。
- 当浏览器滚动页面时,只需要重新绘制被滚动的部分,而不是整个页面。
-
组合位图并显示
- 最后,浏览器会把分块的小块组合成一个位图,并显示在屏幕上。
- 位图是一个由像素组成的图像。
- 每个像素都有一个颜色值。
- 当浏览器组合位图时,它会把每个小块的像素颜色值组合成一个新的像素颜色值。
- 新的像素颜色值将被应用到屏幕上的相应位置。