基本翻译
repaint 的中文翻译为:重绘。
技术含义
在 Web 开发中,repaint(重绘)是指当页面元素的外观发生变化(如颜色、背景、visibility 等),但不影响其几何位置或布局时,浏览器重新绘制该元素的过程。
重绘不会引起布局变动,因此性能开销通常小于 reflow(回流/重排)。
常见触发 repaint 的操作
- 修改元素的颜色(color、background-color)
- 改变 visibility 属性(非 display)
- 调整 outline、box-shadow 等不影响布局的样式
repaint 与 reflow 的区别
reflow(回流/重排)是指当 DOM 结构或元素尺寸、位置发生变化,导致浏览器需要重新计算布局的过程。reflow 一定会触发 repaint,但 repaint 不一定触发 reflow。
性能建议
频繁的 repaint 会影响页面性能。优化建议包括:
- 避免频繁修改样式,可使用 CSS class 批量切换
- 使用 transform 和 opacity 实现动画,它们通常不会触发 repaint 或 reflow
- 将需要频繁变化的元素脱离文档流(如使用 position: fixed/absolute)