브라우저의 렌더링 원리
브라우저의 렌더링 원리
- HTML 파싱 후, DOM(Document Object Model) 트리를 구축한다.
- CSS 파싱 후, CSSOM(CSS Object Model) 트리를 구축한다.
- JavaScript 실행
- HTML 중간에 스크립트가 있다면 HTML 파싱이 중단된다.
- DOM과 CSSOM을 조합하여 렌더트리(Render Tree)를 구축한다.
display:none
과 같이 화면에서 보이지도 않고 공간을 차지하지 않는 것은 렌더트리로 구축되지 않는다.
- 뷰포트 기반으로 렌더트리의 각 노드가 가지는 정확한 위치와 크기를 계산한다 (Layout/Reflow 단계)
- 뷰포트 : 브라우저 화면 상에 실제로 표시되는 영역
- Reflow : 레이아웃 단계를 다시 거치는 것
- 계산한 위치 / 크기를 기반으로 화면에 그린다. (Paint/Repaint 단계)
- Repaint : 페인트 단계를 다시 거치는 것