- 호출 시점의 차이
- 한 페이지에 두 함수가 모두 있는 경우 실행 우선순위(ready → onload)
- ready: DOM Tree 생성 후
- onload: 모든 페이지 구성요소 페인팅 완료 후
- 기본적인 HTML 문서 렌더링 과정
- Loading(불러오기)
- 불러오기는 Http 모듈 또는 파일시스템으로 전달받은 리소스 스트림(Resource Stream)을 읽는 과정으로 로더(Loader)가 이 역할을 수행
- 로더(Loader)는 단순히 읽는 것이 아니라, 이미 읽었는지 확인, 팝업창을 열지 말지, 또는 파일을 다운로드 받을 지 결정
- Parsing(파싱)
- DOM Tree를 만드는 과정
- 웹 엔진이 가지고 있는 HTML/XML 파서가 문서를 파싱해서 DOM Tree를 만듦
- DOM Tree
- 내용을 저장하는 트리
- javascript에서 접근하는 DOM 객체를 사용할 때 이용
- Rendering Tree(렌더링 트리 만들기)
- DOM Tree와는 별도로 그리기 위한 트리가 만들어지는 과정에서 그려지는 트리
- 그릴 때 필요없는 head, title, body 태그 등이 있음?
- display:none 처럼 DOM에는 있지만 화면에서는 걸러내야할 것들이 걸러내진 트리
- CSS 결정
- css는 선택지에 따라서 적용되는 태그가 다름
- 따라서, 모든 css스타일을 분석해 태그에 적용되는 스타일 규칙이 적용되게 결정
- Layout(레이아웃)
- 렌더링 트리에서 위치나 크기를 가지고 있지 않음
- 객체들에게 위치와 크기를 결정해주는 과정
- Painting(그리기)
- 정리
$(document).ready
- 호출 시점 → Loading, Parsing이 완료되어 DOM Tree 생성이 완료된 후 호출
- 외부 리소스 및 이미지 로딩과 상관없이 DOM만 로드되면 실행
- 중복 사용해도 순서대로 모두 실행
$(document).onload
- 호출 시점 → 모든 과정이 완료되어, 웹 페이지가 구성된 후 호출
- 페이지의 모든 요소들이 로드된 이후 호출
- 한 페이지에서 하나의 onload 함수만 적용
- 가장 나중에 작성된 함수만 적용