DEV_HOYA
로그인
DEV_HOYA
로그인
[네트워크] 브라우저 렌더링
DEV_HOYA
·
2023년 12월 19일
팔로우
0
0
CS
목록 보기
41/55
📌 브라우저 렌더링
브라우저는 브라우저엔진, 렌더링엔진, 네트워크통신부, 자바스크립트 해석기, UI백엔드, 자료저장소로 이루어짐
이중
렌더링엔진
이 브라우저 렌더링을 담당
⭐ 1. DOM 트리와 CSSOM 트리 구축
✅ DOM(Document Object Model) 트리
태그들이 HTML파서에 의해
구문분석
됨
이 요소들 각각 노드로 설정이 되어 트리형태로 저장됨
✅ CSSOM 트리
CSS파서에 의해 트리가 만들어짐
DOM트리 구축과
동시에
일어남
⭐ 2. 렌더트리와 렌더레이어 생성
DOM트리와 CSSOM트리가 합쳐져
렌더객체(Render Object)
가 생성됨
이를 모아 렌더트리가 생성됨
최적화(불필요 노드삭제, 상속스타일)를 거쳐 렌더레이어가 완성됨
GPU에서 처리하는 많이 변경이 일어나는 부분은 그래픽 레이어로 분리됨(부하때문에)
ex) animation, transform, translateX
✅ display:none VS visibility:hidden
display:none은
렌더트리에서 삭제됨
visibility:hidden은 삭제되지않고 여전히 레이아웃에서
공간을 차지
함
⭐ 3. 렌더레이어를 대상으로 Layout 설정
좌표는 부모를 기준으로 설정됨
⭐ 4. 렌더레이어를 대상으로 칠하기(paint)
픽셀마다 점을 찍듯 칠함(레스터화)
⭐ 5. 레이어 합치기 및 표기
각각의 레이어로부터 비트맵이 생성되고 GPU에 텍스처로 업로드됨
텍스처들은 합쳐져 하나의 이미지로 렌더링되어 화면에 출력
✅ 렌더트리와 DOM트리는 1:1 대응인가?
NO !
DOM트리 > 렌더객체 > 랜더트리가 되는과정에서
display:none
으로 사라지는 렌더객체들이 있기때문에 1:1 대응이 아니다
DEV_HOYA
팔로우
이전 포스트
[네트워크] REST API
다음 포스트
[네트워크] 사이트 접속 과정
0개의 댓글
댓글 작성