Reflow와 Repaint가 실행되는 시점

장석원·2024년 7월 21일

⚙️Reflow

  • 생성된 DOM 노드의 레이아웃 수치가 변경 시 영향받는 모든 노드의 수치를 다시 계산하여 렌더트리를 재 생성 하는 과정

⚙️Repaint

  • Reflow 과정이 끝난 후 재 생성된 렌더트리를 다시 그리는 과정

실행되는 시점

Reflow

  • DOM 엘리먼트가 추가,제거,변경 될때
  • CSS 스타일이 추가,제거,변경 될때
  • CSS 스타일을 직접 변경하거나, 클래스를 추가함으로써 레이아웃이 변경될 수 있다. 엘리먼트의 길이를 변경하면, DOM 트리에 있는 다른 노드에 영향을 줄 수 있다.
  • CSS3 애니메이션과 트랜지션. 애니메이션의 모든 프레임에서 리플로우가 발생한다.
  • offsetWidth 와 offsetHeight의 사용. offsetWidth와 offsetHeight 속성을 읽으면,
    초기 리플로우가 트리거되어 수치가 계산된다.
  • 유저 interaction으로 발생하는 hover 효과, 필드에 텍스트 입력, 창 크기 조정, 글꼴 크기 변경, 스타일시트 또는 글꼴 전환등을 활성화하여 리플로우를 트리거할 수 있다.

Repaint

  • 가시성이 변경되는 순간 (opacity, background-color, visbility, outline)
  • Reflow가 실행된 순간 뒤에 실행된다.

0개의 댓글