오늘도 나는
article thumbnail
Published 2021. 3. 25. 23:33
[HTML] 브라우저 렌더링 과정 HTML CSS

 

일반적으로 브라우저가 서버로부터 페이지에 대한 응답을 받을경우 화면에 표시되기까지 많은 동작을 거쳐야한다.

여기서 브라우저가 HTML파일을 초기 화면에 표시하기 위한 이 순서를 CRP(Critical Rendering Path)라고 한다.

 

 

CRP는 다음과 같이 6단계의 순서로 실행된다.

 

브라우저 렌더링 과정

 

  1. HTML파일을 파싱하여 각 HTML태그들을 오브젝트 노드로 변환하여 이를 기반으로 DOM트리를 구축한다.

  2. CSS파일을 파싱하여 CSSOM(CSS Object Model) 구축한다.

  3. javascript 실행한다. 여기서 HTML파싱 중 외부 파일과 연결된 script태그를 만나면 파싱을 중단하고 script 파일을 요청하고 다운로드 한다. 요청 한 파일이 다운로드가 완료되면 다시 다음 태그들을 파싱한다.
    (단, defer, async 와 같은옵션이 없다는 가정하에)

  4. DOM트리와 CSSOM를 합하여 Render tree를 구축한다.
    ( display:none 속성은 실제로 브라우저 공간을 차지하지않고 표시되지않기 때문에 Render tree에서 제외된다.)
    단, opacity:0 , visibility : hideen 속성과 같은 경우 공간을 실제로 차지하지만 화면에서만 표시되지 않기때문에 
    Render tree에 포함된다.

  5. 뷰 포트를 기반으로 Render tree 각 노드의 정확한 위치와 크기를 계산한다.(Layout / Reflow)

  6. 계산 된 노드들을 브라우저 화면에 표시된다. (Paint)

 

 

 

 

참고

HTML critical rendering path의 이해

'HTML CSS' 카테고리의 다른 글

[HTML] DOM의 이해  (0) 2021.03.22
[HTML] 시맨틱(Semantic) 태그에 대하여  (0) 2021.02.04
[HTML] 🤔 HTML5란?  (0) 2021.01.31
profile

오늘도 나는

@hcw95

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그