Що робить repaint?
Repaint (перемальовування) - це етап роботи браузерного рендерингу, під час якого перемальовується зовнішній вигляд елементів без зміни їхньої геометрії і розташування в документі.
Тобто браузер не перераховує layout, а лише оновлює пікселі.
Коротка відповідь для співбесіди
Repaint - це процес перемальовування елементів, коли змінюються візуальні властивості (наприклад, color, background, visibility), але їхні розміри і позиція лишаються незмінними.
Трохи детальніше
Браузер зазвичай проходить такі етапи рендерингу:
DOM → CSSOM → Render Tree → Layout → Paint → Composite
Repaint відбувається на етапі Paint.
Наприклад, repaint викликають зміни:
colorbackgroundborder-colorvisibilitybox-shadowoutline
Приклад:
element.style.backgroundColor = "red";Layout не потрібен, лише repaint.
Важливо для продуктивності
Repaint дешевший, ніж reflow (layout), але все одно може бути дорогим при:
- великій кількості елементів
- частих змінах
- анімаціях через JS
Тому для анімацій часто використовують:
transformopacity
Тому що вони можуть оброблятися на compositor layer, оминаючи repaint.
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.