Reflow와 Repaint가 실행되는 시점
Reflow: 레이아웃이 변경될 때 발생하며, 브라우저가 요소들의 크기와 위치를 다시 계산하는 과정입니다.
- DOM 엘리먼트 추가, 제거, 또는 변경.
- CSS 스타일 변경이나 클래스 추가로 레이아웃이 변경될 때.
- 엘리먼트의 크기를 변경하면 다른 요소에도 영향을 미칠 수 있습니다.
- CSS 애니메이션과 트랜지션은 각 프레임에서 Reflow를 발생시킵니다.
- `offsetWidth`, `offsetHeight` 속성 사용 시, Reflow가 트리거되어 값을 계산합니다.
- 유저 인터랙션(hover 효과, 텍스트 입력, 창 크기 조정 등)이 Reflow를 유발할 수 있습니다.
Repaint: 요소의 가시성이나 스타일이 변경될 때 발생하며, 레이아웃에는 영향을 주지 않습니다.
- `opacity`, `background-color`, `visibility` 등의 스타일이 변경될 때.
- Reflow가 발생한 이후에 Repaint가 실행됩니다.
Reflow는 Repaint보다 성능에 더 큰 영향을 미칠 수 있으므로 성능최적화가 필요합니다.
'STUDY > cs' 카테고리의 다른 글
주소창에 google.com을 입력하면 일어나는 일?! (1) | 2024.09.06 |
---|---|
웹 브라우저의 렌더링 과정 이해하기 (1) | 2024.08.30 |
SSR 과 CSR 비교! (0) | 2024.03.01 |
프레임워크(Framework) VS 라이브러리(Library) (0) | 2024.02.28 |