关于渲染引擎的重绘与回流介绍
-
浏览器渲染解析页面完整流程
-
1.先解析HTML,生成DOM树(重要步骤)
-
2.后解析CSS,生成样式规则
-
3.根据DOM树与样式规则,得到一颗渲染树Render Tree(重要步骤)
- DOM树:只有结构没有样式
- 渲染数:DOM树 + CSS样式 (可以理解为附加了样式的DOM树)
-
4.渲染引擎开始工作,解析渲染树。
- 这个步骤发生
回流(又称重排)
: 计算节点的尺寸、结构、布局
- 这个步骤发生
-
5.开始绘制
- 这个步骤发生
重绘
: 根据重排结果进行绘制页面
- 这个步骤发生
-
6.渲染完成,呈现页面
-
重要概念:
重排一定会引起重绘,但是重绘不一定引起重排
-
引起重排操作:主要是修改了尺寸、布局(总结起来就是对布局产生印象)
- 如:修改盒子的尺寸, 修改盒子位置、修改字体大小、边框等等影响盒子模型布局的都会导致重绘
重排
:会导致页面大面积重绘,甚至是整个页面重新绘制。(影响性能)
-
引起重绘操作:不影响布局,只是影响盒子自身属性
- 如:修改颜色,修改透明度等,对布局没有任何影响的
-