웹 애플리케이션의 자바스크립트는 브라우저에서 HTML, CSS와 함께 실행된다.
그렇기 때문에 브라우저 환경을 고려할 때 보다 효율적인 자바스크립트 프로그래밍이 가능하다.
- 사용자가 선택한 자원을 서버에 요청하고 브라우저에 표시하는 것
- 자원의 형태는 여러가지이다.(보통 HTML문서이지만 이미지 또는 다른 형태일 수 있다.)
- 자원의 주소는 URI(Uniform Resource Identifier)에 의해 정해진다.
- 브라우저는 서버로부터 HTML, CSS, Javascript, 이미지 파일 등을 응답받는다.
- HTML, CSS 파일은 렌더링 엔진의 HTML 파서와 CSS 파서에 의해 파싱(Parsing)되어 DOM, CSSOM 트리로 변환되고 렌더 트리로 결합된다.
- 이렇게 생성된 렌더 트리를 기반으로 브라우저는 웹페이지를 표시한다.
서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면이다. 즉, 사용자가 기기를 쉽게 동작시키는데 도움을 주는 시스템을 의미한다.
요청 받은 내용을 브라우저 화면에 표시하는 일
렌더링 엔진은 HTML 문서를 파싱하고 "콘텐츠 트리" 내부에서 태그를 DOM 노드로 변환한다.
그 다음 외부 CSS 파일과 함께 포함된 스타일 요소도 파싱한다.
스타일 정보와 HTML 표시 규칙은 "렌더 트리"라고 부르는 또 다른 트리를 생성한다.
DOM은 Document Object Model, 한글로는 문서 객체 모델이라고 하고 노드는 DOM의 요소 1개를 말한다.
HTML, 또는 XML 페이지의 구조와 요소들을 제어할 수 있도록 제공하는 프로그래밍 인터페이스, 또는 구조화된 데이터를 말한다.
웹브라우저는 먼저 HTML 파일을 읽어 문서의 구조를 파악하고, 트리 형태로 된 데이터 구조를 만든다.
이것이 DOM 입니다. DOM이 일단 완성되고 나면, 자바스크립트와 같은 프로그래밍 언어가 DOM을 제어할 수 있게 된다.
웹브라우저가 화면에 웹페이지를 표시하는 단계로 넘어가기 전에 실행되는 자바스크립트가 DOM을 제어한다.
DOM 제어가 끝나면 웹브라우저는 DOM 구조를 기반으로 화면에 웹페이지를 그리는 과정을 진행한다.
이 그리는 과정을 렌더링(Rendering) 이라고 한다.
렌더링에는 CSS 파일의 화면 배치와 속성에 대한 정보를 정보를 사용한다.
이 과정에서 웹브라우저는 DOM과 마찬가지로 CSS를 읽어 CSSOM(Cascading Style Sheet Object Model) 을 생성한다.
CSS를 구조화 된 데이터 형태로 생성한 것이다.
DOM 과 CSSOM을 조합해 화면에 표시할 최종 구조를 만든다.
이것을 렌더트리라고 부른다.
렌더트리를 기초로 화면에 HTML 페이지를 그린다.
렌더 트리 생성이 끝나면 배치가 되면서 컨텐츠 파일들 또한 비동기로 각 노드가 화면의 정확한 위치에 표시되는 것을 의미한다.