1、display属性设置
先将元素设为
display: none
(需要1次重排和重绘),然后对这个节点进行100次操作,最后再恢复显示(需要1次重排和重绘)。这样一来,你就用两次重新渲染,取代了可能高达100次的重新渲染。
只在必要的时候,才将元素的display属性为可见,因为不可见的元素不影响重排和重绘。另外,
visibility : hidden
的元素只对重绘有影响,不影响重排。
2、position:absolute/fixed
position属性为absolute或
fixed
的元素,重排的开销会比较小,因为不用考虑它对其他元素的影响。
3、不要一条条地改变样式,而要通过改变class,或者csstext属性,一次性地改变样式。
// bad
var left = 10;
var top = 10;
el.style.left = left "px";
el.style.top = top "px";
// good
el.className = " theclassname";
// good
el.style.cssText = "; left: " left "px; top: " top "px;";
以上参考阮一峰技术博客:http://www.ruanyifeng.com/blog/2015/09/web-page-performance-in-depth.html