$ (window) .load ()와 $ (document) .ready () 함수의 차이점


216

의 차이 무엇입니까 $(window).load(function() {})$(document).ready(function() {})jQuery를에가?

답변:


266
  • document.ready는 jQuery 이벤트이며 DOM이 준비 될 때 실행됩니다. 예를 들어 모든 요소 를 찾을 수는 있지만 반드시 모든 내용이 필요한 것은 아닙니다 .
  • window.onload이미지 및 이와 같은 이미지 가로드 될 때 나중에 (또는 최악의 / 실패한 경우 동시에) 실행 되므로 이미지 크기를 사용하는 경우 종종이를 사용하려고합니다.

38
속기에 대한이 $(document).ready(function(){})있다 $(function(){})과 window.load에서 또 다른 중요한 차이점은 심지어 초기 DOMready 후, 함수의 모든 미래의 통화에서 실행되는 것입니다.
Michael Butler

2
@dbliss 예 onload가 속기라고 생각합니다 $(window).on('load'). 둘 다 로드 이벤트를 참조합니다 .
Free Lancer

5
@MichaelButler-무슨 뜻 it will run on ALL future calls of the function인가요?
BornToCode

7
@ MichaelButler : 귀하의 의견에 더 명확해야합니다. 1) $(document).readyDOM이 준비된 후 USER가 더 많은 코드를 실행하는 것에 대해 이야기하고 있습니다. 그것은 작은 유스 케이스이므로 아마도 모든 사람들이 그것을 언급하는 것을 혼란스럽게 할 가치가 없었을 것입니다. 2) 환경 $(document).ready(f‌​unction(){})은 DOM이 준비 될 때 한 번만 호출합니다 . 어떤 이유로 든 $(document).readyDOM이 준비된 후 사용자가 더 많이 실행하면 예, 즉시 실행됩니다.
Doug S

4
나는달라고 간청한다, 마이클 이것을 그대로두고 쓸모없는 주석으로 분해하지 마십시오. 최소한 혼란스러워하는 사람들은 이제 답을 얻습니다.
Doug S

73
$(document).ready(function() {
 // executes when HTML-Document is loaded and DOM is ready
 alert("document is ready");
});


$(window).load(function() {
 // executes when complete page is fully loaded, including all frames, objects and images
 alert("window is loaded");
});

22

$(window).load()jQuery를 3.0에서 사용할 수 없습니다

$( window ).load(function() {
        // Handler for .load() called.
});

이를 해결하기 위해 "이벤트 핸들러 첨부 파일"로 사용할 수 있습니다.

$( window ).on("load", function() {
        // Handler for .load() called.
});

14

차이점은 다음과 같습니다.

$(document).ready(function() { DOM이로드되면 시작되는 jQuery 이벤트이므로 문서 구조가 준비되면 시작됩니다.

$(window).load() 전체 콘텐츠가로드 된 후 이벤트가 시작됩니다.


9
<html>
<head>
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script>
    $( document ).ready(function() {
        alert( "document loaded" );
    });

    $( window ).load(function() {
        alert( "window loaded" );
    });
    </script>
</head>
<body>
    <iframe src="http://stackoverflow.com"></iframe>
</body>
</html>

모든 iframe 콘텐츠가로드 된 후 window.load가 트리거됩니다.


7

$(document).ready 모든 요소가 DOM에 존재하지만 반드시 모든 내용이 아닌 경우에 발생합니다.

$(document).ready(function() {
    alert("document is ready");
});

window.onload또는 $(window).load()모든 콘텐츠 리소스 (이미지 등)가로드 된 후에 발생합니다.

$(window).load(function() {
    alert("window is loaded");
});


0

document.ready (jQuery) document.ready는 HTML 문서가로드되고 DOM이 준비된 직후 실행됩니다.

DOM : DOM (Document Object Model)은 HTML, XHTML 및 XML 문서에서 객체를 나타내고 상호 작용하기위한 플랫폼과 언어에 독립적 인 규칙입니다.

$(document).ready(function()
{
   // executes when HTML-Document is loaded and DOM is ready
   alert("(document).ready was called - document is ready!");
});

window.load (내장 JavaScript) window.load는 페이지가 완전히로드 될 때까지 대기합니다. 여기에는 내부 프레임, 이미지 등이 포함됩니다. * window.load는 내장 JavaScript 메소드이며 일부는 알려진 것으로 알려져 있습니다. 오래된 브라우저 (IE6, IE8, 이전 FF 및 Opera 버전)에서는 기발하지만 일반적으로 모든 브라우저에서 작동합니다.

window.load는 다음과 같이 본문의 onload 이벤트에서 사용할 수 있습니다 (그러나 나중에 혼동의 원인이되므로 HTML에서 이와 같은 코드를 혼합하지 않는 것이 좋습니다).

$(window).load(function() 
{
   // executes when complete page is fully loaded, including all frames, objects and images
   alert("(window).load was called - window is loaded!");
});

0

$ (window) .load 는 DOM과 페이지의 모든 내용 (모든 것)이 CSS, 이미지 및 프레임과 같이 완전히로드 될 때 발생하는 이벤트입니다. 가장 좋은 예는 실제 이미지 크기를 얻거나 사용하는 세부 정보를 얻는 것입니다.

$ (document) .ready () 는 DOM이로드되고 스크립트에 의해 조작 될 준비가되면 코드가 실행되어야 함을 나타냅니다. jQuery 스크립트를 실행하기 위해 이미지가로드 될 때까지 기다리지 않습니다.

<script type = "text/javascript">
    //$(window).load was deprecated in 1.8, and removed in jquery 3.0
    // $(window).load(function() {
    //     alert("$(window).load fired");
    // });

    $(document).ready(function() {
        alert("$(document).ready fired");
    });
</script>

$ (document) .ready () 다음에 $ (window) .load가 시작되었습니다.

$ (window) .load는 1.8에서 더 이상 사용되지 않으며 jquery 3.0에서 제거되었습니다.


0

$(window).load이벤트가 JQuery 3.x에서 지원되지 않는다고 생각합니다.


1
당으로 문서 $ (창) .load 이벤트는 JQuery와 3.0에서 제거
마티유 VIALES

1
맞습니다. 이를 해결하기 위해 "이벤트 핸들러 첨부 파일"로 사용할 수 있습니다. $ (window) .on ( "load", function () {// .load ()의 핸들러 호출});
Kean Amaral

0

DOM Level 2 Events에 따르면 load이벤트는 on document이 아니라 on으로 시작 window됩니다. 그러나 이전 버전과의 호환성을 위해 모든 브라우저에서 load구현 window됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.