如何避免回流与重绘


  • 硬件加速: 使用CSS3的 transformopacity 属性,将元素的渲染交给GPU处理
  • 合并操作: 尽量避免频繁地修改DOM,可以将多个修改操作合并到一个操作中。例如,可以先将元素脱离文档流(如使用 display: none),进行修改后再将其显示出来。
  • 文档片段: 在向DOM中添加多个元素时,可以先在文档片段中进行操作,然后再将文档片段一次性添加到DOM中
  • 缓存: 在需要多次访问布局信息时,可以先将这些信息缓存起来,避免每次都触发回流
  • 避免: 某些CSS属性(如 offsetWidthoffsetHeight)会触发回流,尽量避免在频繁操作中使用这些属性