回流和重绘
浏览器渲染过程:
HTML结构和css样式同时开始解析,HTML结构解析为DOM树,css样式解析为样式规则,DOM树和css规则合并为渲染树,根据渲染树开始布局,布局后开始喷绘,涂色彩,最终将页面显示出来。
重绘:
当我们改变了某些标签的颜色,就需要重新进行喷绘,这个操作叫重绘。
回流:
当我们改版了某些标签的大小或位置,就需要重新进行布局,这个操作叫重排,也叫回流。 重绘和回流都会对浏览器渲染造成一定的性能影响。
提高回流和重绘性能的操作:
(1)合并样式修改
①标签.style.cssText = ''
②将样式合并到一个类名中进行操作
(2)尽可能少的减少dom操作
①使用文档碎片
②隐藏节点,操作dom,显示节点
③复制节点,操作dom,替换原节点
(3)定时器中减少触发回流
将定时器中触发回流的操作尽可能的放在定时器外面