web

window.onload 와 $(document).ready()의 차이

tonirr 2020. 2. 8. 16:14

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>

호출순서