3분 만에 알 수 있는 브라우저 렌더링 메커니즘 [웹 프런트 고성능 조화 제2장 독서 노트]
개시하다
브라우저의 주요 구성 요소 구성
엔진 소개
특정한 기능과 서비스를 외부에 제공하는 소프트웨어와 시스템 등
참조: https://e-words.jp/w/%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%B3.html
렌더링 엔진은
웹 페이지를 그리는 소프트웨어를 제공하다.
HTML, CSS, 이미지 파일 등 다양한 에셋을 받아 화면에 에셋을 그리는 역할을 한다.
자원을 받아서 그리는 역할을 하기 때문에 브라우저 외에 HTML 메일의 디스플레이를 지원하기 위해 렌더링 엔진을 삽입할 수 있습니다.
대표 예: Blink, WebKit
자바스크립트 엔진
Javascript의 실행 환경을 제공하는 소프트웨어입니다.
렌더링 엔진과 함께 사용하는 경우 자바스크립트에서 DOM 트리, CSSOM 트리 등 내부 대상이나 API에 접근할 수 있도록 귀속을 제공합니다.
엔진이 있기 때문에, 예를 들면
<script>
document.write('Hello World!')
</script>
이러한 코드가 HTML 파일에 기술되어 브라우저에 표시되면 브라우저에서 프롬프트가 표시됩니다.을 입력합니다.대표 예: V8
브라우저 렌더링 프로세스
크게 다음과 같은 네 단계로 나뉜다.
Loading -> Scripting -> Rendering -> Painting
참고할 만한 이미지가 있으니 첨부합니다.
참조: https://www.seplus.jp/dokushuzemi/blog/2020/08/step_up2_specialist_css.html
Loading
에셋을 다운로드하고 다운로드한 에셋을 지웁니다.
여기서 말하는 자원은
그러면 다운로드할 수 있으면 얻은 자원에 따라 DOM 트리를 구축합니다.이것이 바로 퍼스의 단계다.
브라우저는 여기에 구축된 DOM 트리를 기반으로 렌더링 작업을 수행합니다.
여기에 구축된 DOM 트리는 Javascript를 통해서도 액세스할 수 있습니다.흔히'DOM 작업'이라고 불리지만 상술한 처리 절차를 보면'HTML 파일을 바탕으로 구축된 DOM 트리에 자바스크립트를 실행함으로써 DOM 트리의 구조를 변경한다'는 뜻이다.
또한 CSS 파일도 당연히 HTML 파일 안에 포함됩니다.렌더링 엔진은 여기에 포함된 CSS 파일도 CSSOM 트리로 변환합니다.
이제 Loading 단계가 종료됩니다.
Scripting
문장 해석 -> 문법 해석 -> 컴파일 -> 실행
프로세스 처리
대강 한 차례 설명하다
Loading 단계에서 생성된 Javascript의 코드
문장 해석 -> 문법 해석 -> 컴파일
형식, 클릭
실행
에서 Javascript를 실행하는 코드입니다.
Javascript를 사용하여 DOM 트리를 조작할 수 있지만 나중에 렌더링 단계나 Painting 단계로 이어질 수 있습니다.외부 리소스를 가져올 때 Loading 단계를 다시 시작합니다.
성능을 고려할 때 어떤 코드를 실행하면 어느 단계부터 처리해야 하는지 알아야 한다.
Rendering
렌더링 단계
계산 스타일
Loading 단계에서 구축된 CSSOM 트리에 따라 어떤 DOM 요소가 어떤 CSS 속성을 적용하는지 판단합니다.
배치
스타일 계산에서는 DOM 요소에 적용되는 CSS 속성을 식별합니다.
여기에는 이러한 정보를 바탕으로 Painting 단계에서 사용하는 레이아웃 트리를 만듭니다.
Painting
레이아웃 트리 기반
페인트
드로잉 생성 명령.
격자화
명령에 따라 도면층 단위로 한 장 한 장 그리다.
z축의 상한 관계를 고려하기 위해 왜 층 단위로 그렸는가.
작성 레이어
작성된 여러 레이어를 작성합니다.
레이어 합성에 CPU 및 GPU가 사용됩니다.
2D인 경우 CPU, 3D인 경우 GPU가 더 적합합니다.
잡기
참고 자료
웹 프런트엔드 고성능 튜닝
자세한 내용을 배우고 싶으신 분들은 이쪽을 봐주세요.
열심히 공부하고 싶다면 책을 사거나 다음 기사를 읽는 것을 추천한다.
열심히 공부하고 싶다면 책을 사거나 다음 기사를 읽는 것을 추천한다.
사냥꾼자리에서 배우고 싶은 사람이 여기 있어요.
취미는 조금 다르지만 로딩 단계를 이해하는 데 참고 가치가 크다.
정체된 3년차 웹 엔지니어의 경우 Python 웹 응용 프로그램 자체 시작
Reference
이 문제에 관하여(3분 만에 알 수 있는 브라우저 렌더링 메커니즘 [웹 프런트 고성능 조화 제2장 독서 노트]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mball/items/ac48938a2f8535eda8e5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(3분 만에 알 수 있는 브라우저 렌더링 메커니즘 [웹 프런트 고성능 조화 제2장 독서 노트]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mball/items/ac48938a2f8535eda8e5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)