重绘
当元素需要更新样式,但是这些样式属性只是改变元素的外观 风格,而不会引起布局变化的,只需要浏览器根据元素的新属性重新绘制,使元素呈现新的外观叫做重绘
回流
当render树中的一部分或者全部因为元素的尺寸、布局、隐藏等改变而需要重新构建,称之为回流
首屏加载触发回流和重绘
每个页面至少一次回流,就是在页面第一次加载的时候,这个时候是一定会发生回流。因为要构建render书,在回流的时候,浏览器会使渲染树中受到影响的部分消失,并重新构造这部分渲染书,完成回流之后,浏览器会重新绘制受影响的部分到屏幕中,该过程称之为重绘
重绘不一定引起回流,但回流一定会引起重绘
导致重绘与回流的操作
重绘
修改文本颜色
修改文本的样式
回流
首次加载
浏览器窗口大小发生变化
元素的尺寸,位置发生改变
元素的内容发生变化
删除添加可见元素
减少重绘与回流
需要要对元素进行复杂的操作时,可以先隐藏(display:none),操作完成后再显示
尽量避免用table布局(table元素一旦触发回流就会导致table里所有的其他元素回流)
避免使用css表达式(expression),因为每次调用都会重新计算值
尽量使用css属性简写
批量修改元素样式