Develop/FrontEnd

브라우저의 렌더링

KimBangg 2021. 7. 2. 17:38

[1] 브라우저의 공통구조

User InterFace : 주소 표시줄, 이전 / 다음/  새로고침 버튼 등 웹페이지를 제외하고 사용자와 상호작용

Browser Engine : UI와 Rendering Engine을 연결

Rendering Engine : HTML과 CSS를 파싱하여 요청한 웹 페이지를 표시하는 렌더링 엔진

 

[2] 렌더링의 목표

 

1) HTML, CSS, JS, 이미지 등 웹페이지에 포함된 모든 요소들을 화면에 보여준다.

2) 업데이트가 필요할 때, 효율적으로 렌더링 할 수 있도록 자료구조를 생성한다.

 

[3] Critical Rendeing Path

3-1  DOM Tree 와 CSSOM Tree 생성

 

최초에 HTML은 어휘 분석에 따라 토큰화가 이루어지고, 이후에 Node 객체로 변환 됩니다.

각 Node 가 연관성을 가질 수 있도록 DOM Tree를 형성합니다.

CSSOM Tree는 HTML Dom Tree가 화면에 어떻게 출력 될지 결정해준다.

 

[2] Render Tree 생성

 

화면에 표시 되어야 하는 모든 정보를 포함 하고 있는 트리.

Document 객체 부터 모든 노드를 순회하면서, 각 자리에 필요한 CSS 를 찾아서 규칙을 적용해준다.

 

[3] Painting

 

렌더트리가 완성되면 layout 작업을 위해 View Port 작업이 이루어진다

 

UI가 업데이트되는 3가지 상황

 

[1]

 

[2]

[3]

출처

https://www.youtube.com/watch?v=sJ14cWjrNis