Frontend/JavaScript
$(document).ready() 와 window.onload 의 차이점
leecom116
2024. 7. 1. 09:00
두 구문을 사용하는 이유는 다음과 같다.
자바스크립트는 인터프리터 언어이므로 DOM이 그려지기 전에
자바스크립트로 특정 HTML태그(DOM)를 참조할 경우 스크립트 오류가 뜰 수 있다.
이를 해결 하기 위해 두 개의 구문이 등장하게 되었다.
둘의 차이점을 알아보자.
(참고로 window.onload 는 페이지당 한번만 사용 가능하기 때문에,
window.addEventListener를 사용하면 이러한 문제점을 해결할 수 있다.)
$(document).ready()
1. 호출 시점
- DOM 트리가 로드될 때 호출
2. 특징
- DOM만 로드되면 바로 실행(이미지 및 외부 리소스와 무관)
- 중복 사용해도 순서대로 모두 실행
window.onload
1. 호출 시점
- 페이지의 모든 요소들이 로드된 이후에 호출
2. 특징
- 페이지 로드시 자동으로 실행되는 전역 콜백 함수
- 페이지의 모든 요소들이 로드되어야 호출
- 한 페이지당 하나의 함수만 사용 가능 (가장 나중에 호출된 함수만 적용)
ex) body 태그에 onload 구문이 있을 경우, 먼저 실행되며 window.onload는 실행되지 않음
전체 순서
DOM 트리 생성 -> $(document).ready() 실행 -> 이미지를 포함한 모든 요소 로드 -> window.onload 실행