首先,重绘和回流是两个概念,但是可以声明,回流会引起重绘,但是重绘不一定会引起回流。
1、重绘
当渲染树中的一些元素需要更新属性,而这些属性只是影响元素的外观、风格,而不会影响布局的操作,比如 background-color,我们将这样的操作称为重绘。
常见的会引起重绘的的属性和方法有以下:
2、回流
回流是指当渲染树中的一部分(或全部)因为元素的规模尺寸、布局、隐藏等改变而需要重新构建的操作,会影响到布局的操作,这样的操作我们称为回流。常见的会引起回流的的属性和方法有以下:
总结
回流必定会发生重绘,重绘不一定会引发回流。回流所需的成本比重绘高的多,改变父节点里的子节点很可能会导致父节点的一系列回流。