jQuery .ready() vs .onload() 특징 및 차이

 

개요

jQuery를 이용한 뷰단 event 함수 구현 중 비슷하지만 다른 두 jQuery 함수에 대한 궁금증

 

$(document).ready(function(){
	alert('hi-ready');
 });
 
 $(window).onload(function(){
 	alert('hi-load');
 });
 
  • 호출 시점의 차이 : 한 페이지에 두 함수가 다 있다면 실행 우선 순위 (.ready() -> .onlad() 순으로 실행)
    • .ready() 호출시점 : DOM Tree 생성 완료 후
    • .onload() 호출시점 : 모든 페이지 구성요소 페인팅 완료 후

내용

우선 알아둬야할 내용 "웹 브라우저의 HTML문서 랜더링 과정"

  1. 불러오기 (Loading)
    • 불러오기는 HTTP 모듈 또는 파일시스템으로 전달 받은 리소스 스트림(Resource Stream)을 읽는 과정으로 로더(Loader)가 이 역할을 맡고 있다.
    • 로더는 단순히 읽는 것이 아니라, 이미 데이터를 읽었는지도 확인하고, 팝업창을 열지 말지, 또는 파일을 다운로드 받을 지를 결정한다.
  2. 파싱(Parsing)
    • 파싱은 DOM(Document Object Model) 트리를 만드는 과정이다.
    • 웹 엔진이 가지고 있는 HTML/XML 파서가 문서를 파싱해서 DOM Tree를 만든다.
    • DOM Tree : 내용을 저장하는 트리로 javascript에서 접근하는 DOM객체를 쓸 때 이용됨.
  3. 랜더링 트리 만들기 (Rendering Tree)
    • 랜더링 트리 : DOM Tree와는 별도로 그리기 위한 트리가 만들어져야 하는데, 그것이 랜더링 트리이다.
  4. CSS 결정
    • CSS는 선택자에 따라서 적용되는 태그가 다르기 때문에 모든 CSS 스타일을 분석해 태그에 스타일 규칙이 적용되게 결정한다.
  5. 레이아웃(LayOut)
    • 랜더링 트리에서 위치나 크기를 가지고 있지 않기 때문에 객체들에게 위치와 크기를 정해주는 과정을 레이아웃이라고 한다.
  6. 그리기
    • 랜더링 트리를 탐색하면서 페이지를 그려나간다.

결론 

jQuery .ready() : 1~2번 과정이 완료되어 DOM Tree 생성이 완료된 후 호출

jQuery.onload() : 모든 과정이 완료되어, 웹 페이지가 다 구성된 후 호출.

'Web > jQuery' 카테고리의 다른 글

jQuery 기본 구문 설명  (0) 2021.02.09
jQuery CSS 스타일 변경하기  (0) 2021.02.09
JQuery?  (0) 2021.02.08

+ Recent posts