본문 바로가기
프로그래밍/jQuery

ajaxStart() Ajax 요청이 시작될 때 호출되는 함수

by zoo10 2012. 6. 19.

.ajaxStart()

원문 링크 http://api.jquery.com/ajaxStart/

ajaxStart( handler() )Returns : jQuery

개요 : 첫번째 Ajax 요청이 시작될 때 호출할 핸들러를 등록합니다. 이것은 Ajax 이벤트 입니다.

  • .ajaxStart( handler() )
  • handler() 실행될 함수

Ajax 요청을 보내기 전에, jQuery는 진행중인 Ajax 요청이 있는지 체크합니다. 만일 진행중인 Ajax 요청이 없다면, jQuery는 ajaxStart 이벤트를 발생시킵니다. .ajaxStart() 함수에서 등록된 모든 핸들러가 실행되게 됩니다.

이 함수가 동작하는 것을 보기위해 기본적인 Ajax 요청을 만들 수 있습니다.

<div class="trigger">Trigger</div>
<div class="result"></div>
<div class="log"></div>

특정한 엘리먼트에 이벤트 핸들러를 붙여 보겠습니다.

$('.log').ajaxStart(function() {
  $(this).text('Triggered ajaxStart handler.');
});

그리고, Ajax를 실행시킬 jQuery 함수를 사용하면:

$('.trigger').click(function() {
  $('.result').load('ajax/test.html');
});

trigger 클래스를 가진 div 를 클릭하면 log 메시지가 log 클래스 div 태그에 나타나게 됩니다.

Note: .ajaxStart() 함수는 jQuery 객체에 의해 만들어지기 때문에, this 키워드는 콜백 함수내에서 선택되어진 요소를 지칭하게 됩니다.

예 제  
Ajax 요청이 시작될 때(그리고 active한 Ajax 요청이 없을 때), loading 메시지를 보여줍니다.

$("#loading").ajaxStart(function(){
   $(this).show();
 });

 

위 예제 처럼 사용자가 클릭하면 loading 바 같은 걸 나오게 하고 싶을 때 사용하면 좋겠네요. 여기에 핸들러를 짜 놓으면 말이죠.

그럼 즐프하세요.

※ 본 예제는 http://www.jquery.com 에 있는 내용임을 밝힙니다.