[HTML][JavaScript] jQuery .ready() vs .onload() 특징 및 차이 

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

 

 

개요

>  jQuery를 이용한 뷰단 event 함수 구현 중 비슷하지만 다른 두 jQuery 함수에 대한 궁금증
// 비슷하지만 다른 2개의 소스의 차이점이 무엇인가??
$(document).ready(function(){
	alert('hi - ready');
});

$(window).onload(function(){
	alert('hi - load');
});


 

메모

1. 호출 시점의 차이 : 한 페이지에 두 함수가 다 있다면 실행 우선순위 (.ready() → .onload() 순으로 실행)
          .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와는 별도로 그리기 위한 트리가 만들어져야 하는데, 그것이 렌더링 트리다.
        (그릴 때 필요없는 head, title, body 태그등이 없음
          + display:none; 처럼 DOM에는 있지만 화면에서는 걸러내야할 것들이 걸러내진 트리)

         
    4. CSS 결정
      • CSS는 선택자에 따라서 적용되는 태그가 다르기 때문에
        모든 CSS 스타일을 분석해 태그에 스타일 규칙이 적용되게 결정한다.

         
    5. 레이아웃(Layout)
      • 렌더링 트리에서 위치나 크기를 가지고 있지 않기 때문에
        객체들에게 위치와 크기를 정해주는 과정을 레이아웃이라고 한다.

         
    6. 그리기(Painting)
      • 렌더링 트리를 탐색하면서 페이지를 그려나간다.
         

     
  • $(document).ready vs $(window).onload
      • $(document).ready 의 호출 시점 : 1~2번 과정이 완료되어 DOM Tree 생성이 완료된 후 호출
      • $(window).onload 의 호출 시점 : 모든 과정이 완료되어, 웹 페이지가 다 구성된 후 호출

 

출처: https://hahahoho5915.tistory.com/28 [넌 잘하고 있어:티스토리]

 

 

 

 

 

 

 

 

 

 

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

 

 

 

 

 

 

 

 

 

 

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
13 [웹 어셈블리, WSAM] Persisting data with Emscripten : Emscripten으로 데이터 유지하기 졸리운_곰 2024.04.20 381
12 [웹 어셈블리, WSAM] Porting a Linux Program to Run in Browser using Emscripten : mscripten을 사용하여 브라우저에서 실행되도록 Linux 프로그램 포팅 졸리운_곰 2024.04.20 391
11 [웹 어셈블리, WSAM] An example of emscripten with WebSocket. file 졸리운_곰 2023.12.12 462
10 [웹 어셈블리, WSAM] サーバサイドはWebAssemblyの夢を見るか? – Node.jsでwasmってみた : 서버 측은 WebAssembly의 꿈을 꾸는가? – Node.js에서 wasm 해 보았습니다. file 졸리운_곰 2023.08.27 365
9 [웹 어셈블리 WSAM, webassembly] WebAssembly on the server-side : 서버측 웹어셈블리 file 졸리운_곰 2023.08.27 504
8 [Blazor][WASM] Awesome Blazor file 졸리운_곰 2021.08.15 20070
7 [Blazor][C# .net] Blazor와 C#으로 풀스택 웹 개발하기 file 졸리운_곰 2021.08.15 444
6 [WASM][web assembly] 웹 어셈블리를 보다 쉽게 웹 어플리케이션에 적용하는 방법 file 졸리운_곰 2021.07.19 426
5 Using Blazor, Tensorflow and ML.NET to Identify Images file 졸리운_곰 2021.07.03 529
4 [WASM][WebAssembly] The Top 81 Emscripten Open Source Projects 졸리운_곰 2021.04.19 518
3 [WebAssembly][WSAM] Blazor와 WebAssembly 소개 file 졸리운_곰 2021.03.28 516
2 Webassembly Tutorial using Emscripten file 졸리운_곰 2020.10.24 646
1 [웹어셈블리] Visual Studio 2019와 Emscripten (emcc) 개발 file 졸리운_곰 2020.10.18 2094
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED