"웹 브라우저의 HTML문서 렌더링 과정"
- 불러오기(Loading)
- 불러오기는 HTTP 모듈 또는 파일시스템으로 전달 받은
리소스 스트림(Resource Stream)을 읽는 과정으로 로더(Loader)가 이 역할을 맡고 있다. - 로더는 단순히 읽는 것이 아니라, 이미 데이터를 읽었는지도 확인하고,
팝업창을 열지 말지, 또는 파일을 다운로드 받을 지를 결정한다.
- 불러오기는 HTTP 모듈 또는 파일시스템으로 전달 받은
- 파싱(Parsing)
- 파싱은 DOM(Document Object Model) 트리를 만드는 과정이다.
- 웹 엔진이 가지고 있는 HTML/XML 파서가 문서를 파싱해서 DOM Tree를 만든다.
- DOM Tree : 내용을 저장하는 트리로 javascript에서 접근하는 DOM객체를 쓸 때 이용됨.
- 렌더링 트리 만들기(Rendering Tree)
- 렌더링 트리 : DOM Tree와는 별도로 그리기 위한 트리가 만들어져야 하는데, 그것이 렌더링 트리다.
(그릴 때 필요없는 head, title, body 태그등이 없음
+ display:none; 처럼 DOM에는 있지만 화면에서는 걸러내야할 것들이 걸러내진 트리)
- 렌더링 트리 : DOM Tree와는 별도로 그리기 위한 트리가 만들어져야 하는데, 그것이 렌더링 트리다.
- CSS 결정
- CSS는 선택자에 따라서 적용되는 태그가 다르기 때문에
모든 CSS 스타일을 분석해 태그에 스타일 규칙이 적용되게 결정한다.
- CSS는 선택자에 따라서 적용되는 태그가 다르기 때문에
- 레이아웃(Layout)
- 렌더링 트리에서 위치나 크기를 가지고 있지 않기 때문에
객체들에게 위치와 크기를 정해주는 과정을 레이아웃이라고 한다.
- 렌더링 트리에서 위치나 크기를 가지고 있지 않기 때문에
- 그리기(Painting)
- 렌더링 트리를 탐색하면서 페이지를 그려나간다.
- 렌더링 트리를 탐색하면서 페이지를 그려나간다.
위에 "웹 브라우저의 HTML문서 렌더링 과정"을 참고하면서 보면 좋을듯 해서 참조함!
1. load()
- 서버에서 데이터를 가져오는 가장 간단한 방법.
- JavaScript 이벤트를 load하기 위해서 이벤트핸들러를 bind 함
- 서버에서 데이터를 로드하고 리턴된 HTML에서 일치하는 요소를 배치
2. ready()
- DOM이 완전히 로드 될 때 실행할 함수를 지정
- 페이지의 DOM이 안전하게 조작되면 JavaScript 코드를 실행
- 사용자가 페이지를 보거나 페이지를 상호작용하기전에 필요한 작업을 수행하기 좋음