多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
提到重排与重绘肯定要提到浏览器对文档的渲染流程,如下图 ![](https://img.kancloud.cn/11/ef/11ef747c60809cc04686c01016f4a60b_1026x555.png) 重排,一些人又叫做回流,在谷歌浏览器中叫 Layout,火狐中叫reflow 浏览器在第一次解析文档的时候 会不断的进行重排与重绘,display:none不会渲染,绝对定位会脱离文档流 所以可以将一些比较复杂的动画使用绝对定位 让其在其他地方渲染不阻塞正常的渲染。 除了第一次渲染页面会重排,当几何属性发生变化的时候也会引发重排,如浏览器的窗口大小发生变化,元素的大小、位置发生变化,增删一些dom里的元素,元素内容发生改变(宽高撑起来)。 重排一定伴随着重绘,重绘不一定有重排如文字颜色,背景颜色的改变不会引起重排但是有重绘。 这里梳理一下,从输入地址到渲染呈现页面经过了那些过程,这张图还可以在细化很多,这里写个大概的流程就好了。 ![](https://img.kancloud.cn/24/7a/247a7bbbe8ad3d12aad668708d5fec49_1012x497.png) 需要注意:js仅仅获取元素的height 也触发重排!(2年前,中国网安面试的时候,被一个妹子在我面前装逼了,我当时想没有几何形变,所以不会触发重排,那个妹子很装逼的说你回去网上查查资料,tmd)