programing tip

jQuery document.ready 대 자체 호출 익명 함수

itbloger 2020. 6. 25. 21:25
반응형

jQuery document.ready 대 자체 호출 익명 함수


이 둘의 차이점은 무엇입니까?

  1. $(document).ready(function(){ ... });

  2. (function(){ ... })();

이 두 함수가 동시에 호출됩니까? 브라우저에서 HTML 페이지 전체를 렌더링 할 때 document.ready가 트리거되지만 두 번째 기능 (자체 호출 익명 기능)은 어떻습니까? 브라우저가 페이지 렌더링을 완료하기를 기다리거나 페이지가 나타날 때마다 호출됩니까?


  • $(document).ready(function(){ ... }); 또는 짧다 $(function(){...});

    이 함수는 예를 들어 요소 쿼리를DOM is ready 시작할 수 있을 때 호출됩니다 . DOM이 실제로 준비되었는지 확인하기 위해 다른 브라우저에서 다른 방법을 사용합니다..ready()

  • (function(){ ... })();

    이는 브라우저가 사용자를 해석 할 때 가능한 빨리 자신호출 하는 함수 일뿐ecma-/javascript 입니다. 따라서 DOM elements여기에서 성공적으로 행동 할 가능성은 거의 없습니다 .


(function(){...})(); Javascript에서 발견되는 즉시 실행됩니다.

$(document).ready()문서가로드되면 실행됩니다. $(function(){...});바로 가기이며 바로 $(document).ready()같은 일을합니다.


  1. $(document).ready(function() { ... });단순히 ready문서를로드 할 때 이벤트가 트리거되도록 해당 기능을 문서 이벤트에 바인딩하기 만하면 됩니다.

  2. (function($) { ... })(jQuery);실제로는 Javascript의 구조이며 코드의 모든 부분은 jQuery객체를 function($)매개 변수 전달 하고 함수를 실행하기 때문에 해당 함수 내에서 $항상 jQuery객체를 참조 합니다. 이는 네임 스페이스 충돌 등을 해결하는 데 도움이 될 수 있습니다.

따라서 # 1은 문서가로드 될 때 실행되고 # 2는 즉시 실행되며 jQuery개체 이름 $은 속기입니다.


DOM (문서 객체 모델)이 JavaScript 코드를 실행할 준비가되면 다음 코드가 실행됩니다.

$(document).ready(function(){
  // Write code here
}); 

위 코드의 약식은 다음과 같습니다.

$(function(){
  // write code here
});

아래 표시된 코드는 자체 호출 익명 JavaScript 기능이며 브라우저가 해석하자마자 실행됩니다.

(function(){
  //write code here
})();   // It is the parenthesis here that call the function.

아래에 표시된 jQuery 자체 호출 함수는 전역 jQuery 객체를 인수로 전달합니다 function($). 이를 통해 $정의의 글로벌 범위를 탐색 할 필요없이 자체 호출 기능 내에서 로컬로 사용할 있습니다. jQuery는을 사용하는 유일한 라이브러리가 아니므로 $잠재적 인 이름 충돌이 줄어 듭니다.

(function($){
  //some code
})(jQuery);

DOM이 "구성된"후에 실행되는 document.ready 자체 호출 기능은 <head>DOM이 생성되기 전에에 삽입되면 즉시 실행됩니다 .

참고 URL : https://stackoverflow.com/questions/3259496/jquery-document-ready-vs-self-calling-anonymous-function

반응형