- window.onload같은 경우 전체 페이지의
모든 외부리소스와 이미지가 브라우저에 불리워진 이후에
작동을 하게 되어 이미지가 안뜨거나 딜레이가 생길때는 그 만큼의
시간을 기다려야 하는
문제가 있다.
또한 외부 링크나 파일을 인클루드 했을때 그 안에 window.onload 스크립트가 또 존재하면 둘중에
하나만 적용이 되는 사태가 생긴다.
더 복잡하게는 <body onload="javascript:gogogo();" >와 같이 body에서 onload를 쓰면
모든
window.onload가 실행되지 않는 일이 나타난다.
이런 문제를 해결하기 위해서인지 jQuery에서는 $(document).ready() 함수를 제공한다.
이 함수의 경우 외부 리소스 및 이미지와는 상관없이 DOM데이터만 로드가 완료되면 바로
실행이 되는 함수이다. 또한 중복해서 사용을 해도 그 순서대로 모두 실행이 된다.
ex)
<script type="text/javascript">
window.onload=function() { alert("ccc"); }
$(document).ready(function() { alert("aaa"); });
$(document).ready(function() { alert("bbb"); });
</script>
* 동작순서는 aaa->bbb->ccc 순서로 나타나게
된다.
*자바스크립트는 일반적으로 DOM이 완전히 로드되고 난 후에만 자바스크립트 코드를 수행한다.
출처 : 용돌이