什么是重绘和回流
-
浏览器请求到静态资源后,开始加载并解析。
-
加载html后生成Dom树,加载css后生成cssDom树,两者合并后生成render树
-
回流 : 在render树中计算每个节点的大小和位置
-
重绘: 根据回流得到的大小和位置在屏幕中进行绘制
-
回流一定会重绘,重绘不一定会回流
-
浏览器中的优化机制:浏览器会维护一个队列,队列中存放的是会触发回流和重绘的操作!当达到一定阀值或者一定时间间隔时,才会清空队列!
-
当获取元素大小和位置的时候,为了保证准确,队列会被强制清空,因此,要注意这一类操作的使用!
如何减少重绘回流
-
可以通过批量修改元素的方式达到减少回流和重绘的目的
-
开启css3硬件加速
-
使用定位让脱离文档流