lznbuild / my-blog

自己的博客
9 stars 1 forks source link

浏览器的回流,重绘 #19

Open lznbuild opened 4 years ago

lznbuild commented 4 years ago

先看一下一个简易版的浏览器渲染流程。

js=> style => layout => paint => composite(合成)

重绘(repaint)

浏览器的重绘直接绘制修改部分,跳过了layout部分。

回流(reflow)

浏览器的回流需要重新计算每个dom节点的位置大小等信息,需要layout。

transfrom,position:fixed,opacity,will-change,filter这种开启硬件加速的就是跳过layout,paint部分,直接到GPU进程中composite。

很明显重绘的开销比回流要小。

引起回流的操作(reflow)

如何避免回流