重排(回流)与重绘

69 阅读1分钟

回流和重绘

浏览器渲染过程:

HTML结构和css样式同时开始解析,HTML结构解析为DOM树,css样式解析为样式规则,DOM树和css规则合并为渲染树,根据渲染树开始布局,布局后开始喷绘,涂色彩,最终将页面显示出来。

重绘:

当我们改变了某些标签的颜色,就需要重新进行喷绘,这个操作叫重绘。

回流:

当我们改版了某些标签的大小或位置,就需要重新进行布局,这个操作叫重排,也叫回流。 重绘和回流都会对浏览器渲染造成一定的性能影响。

提高回流和重绘性能的操作:

(1)合并样式修改

①标签.style.cssText = ''

②将样式合并到一个类名中进行操作

(2)尽可能少的减少dom操作

①使用文档碎片

②隐藏节点,操作dom,显示节点

③复制节点,操作dom,替换原节点

(3)定时器中减少触发回流

将定时器中触发回流的操作尽可能的放在定时器外面