본문 바로가기

Programming diary

16. October 4, 2020

브라우저의 HTML문서 렌더링 과정

 

1. 불러오기

로더(Loader) 서버로부터 전달 받는 리소스 스트림을 읽는 과정. 읽으면서 어떤 파일인지, 데이터인지 파일을 다운로드할 것인지 등을 결정한다.

 

2. 파싱 (Phasing)

엔진이 가지고 있는 HTML/XML 파서가 문서를 파싱해서 DOM Tree 만든다.

 

3. 렌더링 트리 만들기

DOM Tree 내용을 저장하는 트리로 자바스크립트에서 접근하는 DOM객체를 이용하는 것이고 별도로 그리기 위한 트리가 만들어져야 하는데 그것이 렌더링 트리다. (그릴 필요없는 head, title, body태그등이 없음 + display:none 처럼 DOM에는 있지만 화면에서는 걸러내야할 것들을 걸러냄)

 

4. CSS 결정

CSS 선택자에 따라서 적용되는 태그가 다르기 때문에 모든 CSS 스타일을 분석해 태그에 스타일 규칙이 적용되게 결정한다.

 

5. 레이아웃

렌더링 트리에서 위치나 크기를 가지고 있지 않기 때문에 객체들에게 위치와 크기를 정해주는 과정을 레이아웃이라고 .

 

6. 그리기

렌더링 트리를 탐색하면서 그리기.

* 참고로 렌더링 엔진은 가능하면 HTML문서가 파싱될 때까지 기다리지 않고, 배치와 그리기 과정을 시작한다.

'Programming diary' 카테고리의 다른 글

18. October 11, 2020  (0) 2020.10.11
17. October 7, 2020  (0) 2020.10.07
15. October 2, 2020  (0) 2020.10.02
14. September 30, 2020  (0) 2020.09.30
13. September 27, 2020  (0) 2020.09.28