重绘和回流

279 阅读1分钟

什么是重绘和回流

  • 浏览器请求到静态资源后,开始加载并解析。

  • 加载html后生成Dom树,加载css后生成cssDom树,两者合并后生成render树

  • 回流 : 在render树中计算每个节点的大小和位置

  • 重绘: 根据回流得到的大小和位置在屏幕中进行绘制

  • 回流一定会重绘,重绘不一定会回流

  • 浏览器中的优化机制:浏览器会维护一个队列,队列中存放的是会触发回流和重绘的操作!当达到一定阀值或者一定时间间隔时,才会清空队列!

  • 当获取元素大小和位置的时候,为了保证准确,队列会被强制清空,因此,要注意这一类操作的使用!

如何减少重绘回流

  • 可以通过批量修改元素的方式达到减少回流和重绘的目的

  • 开启css3硬件加速

  • 使用定位让脱离文档流