重排与重绘的区别:重绘不一定需要重排(比如颜色的改变),重排必然导致重绘(比如改变网页位置)
减少重排与重绘的措施:
操作DOM时,尽量在低层级的DOM节点进行操作
不要使用table布局, 一个小的改动可能会使整个table进行重新布局
使用CSS的表达式
不要频繁操作元素的样式,对于静态页面,可以修改类名,而不是样式。
使用absolute或者fixed,使元素脱离文档流,这样他们发生变化就不会影响其他元素
避免频繁操作DOM,可以创建一个文档片段documentFragment,在它上
应用所有DOM操作,最后再把它添加到文档中
将元素先设置display: none,操作结束后再把它显示出来。因为在display属性为none的元素上进行的DOM操作不会引发回流和重绘。
将DOM的多个读操作(或者写操作)放在一起,而不是读写操作穿插着写。这得益于浏览器的渲染队列机制。