前端优化,了解浏览器重排与重绘
2018年3月15日 当DOM变化影响了元素的几何属性(宽、高改变等等) 浏览器此时需要重新计算元素几何属性 并且页面中其他元素的几何属性可能会受影响 这样渲染树就发生了改变,也就是重新构造RenderTree渲染树 这个过程叫做重排(reflow) 如果DOM变化仅仅影响的了背景色等等非几何属性 此时就发生了重绘(repaint)而不是重排 因为布局没有发生改变 页面发生重绘和重排,都会影响性能(重绘还好一些),尽量避免或减少重排 触发重排 页面布局和元素几何属性的改变就会导致重排 下列情况会发生重排 页面初始渲染 添加/删除可见DOM元素 改变元素位置 改变元素尺寸(宽、高、内外边距、边框等) 改变元素内容(文本或图片等) 改变窗口尺寸 不同的条件下发生重排的范围及程度会不同 某些情况甚至会重排整个页面,比如滑动滚动条 浏览器的优化:渲染队列 div.style.left = '10px'; div.style.top = '10px'; div.style.width = '20px'; div.style.height = '20px'; 如上,修改了元素的left、top、...