window.onload 와 $(document).ready()의 차이
1. window.onload
1) 호출 시점
- 페이지의 모든 요소들이 로드된 이후에 호출
2) 특징
- 페이지의 모든 요소들이 로드되어야 호출된다.
- 한 페이지에서 하나의 window.onload()함수만 적용된다.
- 가장 나중에 호출된 함수만 적용
2. $(document).ready()
1) 호출 시점
- DOM이 로드된 시점
2) 특징
- 외부 리소스 및 이미지 로딩과 상관없이 DOM만 로드되면 바로 실행된다.
- 중복 사용해도 순서대로 모두 실행된다.
-
window.onload = function(){}
-
javascript에서 페이지가 로드 되면 자동으로 실행되는 전역 콜백함수
-
웹페이지(DOM 데이터)가 로딩이 끝나는 시점에 실행되는 함수를 지정
-
문서가 다 읽어지고 난후 실행시킬 자바스크립트 코드를 넣어주면 됨
-
페이지 안의 이미지나 외부 파일이 로드 될 때까지 기다린 후 실행되어 로딩시간이 길어질 수 있음
-
body태그 안에 들어가지 않는이상 body onload가 먼저뜨고 window.onload가 뜨지 않음
-
<body onload = "">로 사용할 수도 있음
-
두개가 다있으면 마지막 <body onload=""> 만 뜨는 이유임
-
$(document).ready(){}
-
$(function(){});과 같음
-
window.onload와 비슷한 역할로 사용되지만 순서는 window.onload가 더 느림
-
DOM 생성됨 -> $(document).ready(function(){}); -> 이미지를 포함한 요소들이 로드 -> window.onload
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
</head>
<body>
<script type="text/javascript">
window.onload = function(){console.log("window onload 1");}
window.onload = function(){console.log("window onload 2");}
$(document).ready(function(){console.log("document ready 1")});
$(document).ready(function(){console.log("document ready 2")});
</script>
</body>
호출순서