更新时间:2022-06-29 来源:黑马程序员 浏览量:

重绘(Repaint)和回流(Reflow)是我们在页面优化的过程中需要着重关注的问题,重绘和回流渲染步骤中的一小节,但是这两个步骤对于性能影响很大。本节我们来看看重绘和回流过程中可能会导致性能问题。
重绘是当节点需要更改外观而不会影响布局的,比如改变
color就叫称为重绘回流是布局或者几何属性需要改变就称为回流。回流必定会发生重绘,重绘不一定会引发回流。回流所需的成本比重绘高的多,改变深层次的节点很可能导致父节点的一系列回流。
所以以下几个动作可能会导致性能问题:
改变 window 大小改变字体添加或删除样式文字改变定位或者浮动盒模型很多人不知道的是,重绘和回流其实和 Event loop 有关。
当 Event loop 执行完 Microtasks 后,会判断 document 是否需要更新。因为浏览器是 60Hz 的刷新率,每 16ms
才会更新一次。然后判断是否有 resize或者 scroll,有的话会去触发事件,所以 resize和 scroll事件也是至少 16ms
才会触发一次,并且自带节流功能。判断是否触发了 media query更新动画并且发送事件判断是否有全屏操作事件执行
requestAnimationFrame回调执行
IntersectionObserver回调,该方法用于判断元素是否可见,可以用于懒加载上,但是兼容性不好更新界面以上就是一帧中可能会做的事情。如果在一帧中有空闲时间,就会去执行
requestIdleCallback回调。
黑马程序员 AI 运维|大厂师资 + 全程服务,3.5 个月实现零基础高薪就业
2026-04-09黑马程序员 AI 运维|10 大就业方向 + 90%+ 就业率,解锁高薪职业路径
2026-04-09黑马程序员 AI 运维|10 大企业级项目实战,毕业即具备独立运维能力
2026-04-09黑马程序员 AI 运维|10 大技术阶段 + 10 大实战项目,从 Linux 到 AI 大模型运维全掌握
2026-04-09黑马程序员 AI 运维|云原生 + 大模型 + 信创三位一体,培养企业紧缺复合型运维人才
2026-04-09黑马程序员AI测试|上市品牌背书,实战赋能,助力冲击年薪30万+
2026-04-09