웹 브라우저의 HTML 문서 렌더링 프로세스
1. 로딩
로더가 서버에서 받은 리소스 스트림을 읽는 프로세스입니다.
읽을 때 어떤 종류의 파일인지, 데이터인지 또는 파일을 다운로드할지 결정합니다.
2. 위상 위치
웹 엔진의 HTML/XML 파서는 문서를 파싱하고 DOM 트리를 만듭니다.
3. 렌더 트리 구축
DOM 트리는 컨텐츠를 저장하는 트리로 JavaScript에서 접근하는 DOM 객체를 작성할 때 사용되며, 렌더링 트리인 별도의 문자 트리를 생성해야 합니다.
(그리기 시 불필요한 Head, Title, Body 태그 없음 + DOM에 존재하지만 화면에서 필터링이 필요한 것 필터링, e.g. Display:none)
4. CSS 결정
CSS에 적용되는 태그는 선택기에 따라 다르기 때문에 모든 CSS 스타일을 분석하여 태그에 적용할 스타일 규칙을 결정합니다.
5. 배치
개체는 렌더 트리에서 위치나 크기가 없기 때문에 개체의 위치를 지정하고 크기를 조정하는 프로세스를 레이아웃이라고 합니다.
6. 그리기
렌더 트리를 통과하면서 그립니다.
* 가능한 경우 렌더링 엔진은 HTML 문서가 구문 분석될 때까지 기다리지 않고 레이아웃 및 그리기 프로세스를 시작합니다.
위의 CSS 아래 스크립트?
이는 웹 브라우저의 재생 순서를 이해하는 경우 의미가 있습니다.
문서를 파싱하고 DOM 트리를 빌드해도 스타일 규칙이 없으면 렌더링이 불가능합니다.
즉, 렌더링 트리가 완전히 구축되기 위해서는 최대한 빨리 스타일 규칙을 알아야 합니다.
성능 향상을 위해 JavaScript를 아래에 배치해야 하는 이유는 무엇입니까?
이는 JavaScript가 DOM 개체를 사용하여 구성 요소를 조작하기 때문입니다.
B. 사이
파싱을 멈추고 읽기 때문에 그 위에 스크립트 파일이나 대용량 파일이 많을 경우 읽기에 시간이 오래 걸리고 웹페이지가 사용자 입장에서 느리게 보이기 때문에 느리게 느껴질 수 있습니다.
코딩을 잘못하더라도 HTML이 파싱되기 전에 JavaScript 파일이 실행되어 적용되지 않는 것을 확인할 수 있습니다.
그래서 우리는 일반적으로 스크립트를