원문 링크 http://api.jquery.com/ajaxComplete/
개요 : Ajax 요청이 완료되면 호출될 핸들러를 등록합니다. 이것은 Ajax 이벤트 입니다.
- .ajaxComplete( handler(event, XMLHttpRequest, ajaxOptions) )
- handler(event, XMLHttpRequest, ajaxOptions) 요청이 완료 후 호출될 함수
Ajax 요청이 완료되면 jQuery는 ajaxComplete
이벤트를 발생시킵니다. 모든 핸들러는 .ajaxComplete()
에서 정의되고 실행됩니다.
이 함수가 동작하는 것을 보기위해 기본적인 Ajax 요청을 만들 수 있습니다.
<div class="trigger">Trigger</div> <div class="result"></div> <div class="log"></div>
위와 같이 태그를 구성한 후 아래처럼 스크립트를 짤 수 있습니다.
$('.log').ajaxComplete(function() { $(this).text('Triggered ajaxComplete handler.'); });
그리고, Ajax를 실행시킬 jQuery 함수를 사용하면:
$('.trigger').click(function() { $('.result').load('ajax/test.html'); });
trigger
클래스를 가진 div 를 클릭하면 Ajax가 실행되고 요청이 완료되면 log 메시지가 log 클래스 div 태그에 나타나게 됩니다.
Note: .ajaxComplete()
함수는 jQuery 객체에 의해 만들어지기 때문에, this
키워드는 콜백 함수내에서 선택되어진 요소를 지칭하게 됩니다.
Ajax 요청이 완료가 되는것에 관계없이 모든 ajaxComplete
핸들러가 실행됩니다. 만약 요청들을 구분해서 제어하기 위해서는 핸들러에 파라미터를 줄 필요가 있습니다. 각각의 ajaxComplete
핸들러가 인자로 가진 event 객체, XMLHttpRequest
객체, ajaxOptions 들을 구분해서 실행되게 됩니다. 예를 들어, 특정한 URL을 상대로만 처리 이벤트의 콜백을 제한할 수 있는 것입니다.
Note: 반환되는 ajax 콘텐츠는 xml 이나 html 에 따라서 xhr.responseXML
또는 xhr.responseHTML
로 구분해서 처리할 수 있습니다.
$('.log').ajaxComplete(function(e, xhr, settings) { if (settings.url == 'ajax/test.html') { $(this).text('Triggered ajaxComplete handler. The result is ' + xhr.responseHTML); } });
예 제
Ajax 요청이 완료되면 메시지를 보여줍니다.
$("#msg").ajaxComplete(function(event,request, settings){ $(this).append("<li>Request Complete.</li>"); });
Ajax가 완료되면 실행되는 이벤트 함수입니다. Ajax가 성공이든 실패든 상관없이 수행되니 잘 분기해서 사용하셔야 겠네요.
그럼 즐프하세요.
※ 본 예제는 http://www.jquery.com 에 있는 내용임을 밝힙니다.
'프로그래밍 > jQuery' 카테고리의 다른 글
jQuery.ajaxSetup() Ajax 옵션 값을 설정하는 함수 (0) | 2012.06.19 |
---|---|
ajaxSend() Ajax 요청을 보내기 전에 호출되는 이벤트 (0) | 2012.06.19 |
jQuery.ajaxPrefilter() $.ajax() 함수 호출 전 Ajax 옵션 수정 (0) | 2012.06.19 |
ajaxError() Ajax 에러가 발생되면 호출 (0) | 2012.06.19 |
jQuery.ajax() HTTP 비동기 데이터 교환 (0) | 2012.06.12 |
toggle(), 요소 표시 또는 숨기기, 토글하기 (0) | 2012.05.08 |
jQuery .stop(), 애니메이션 효과 멈춤 (0) | 2012.05.08 |
slideUp(), 슬라이드 효과로 숨기기 (0) | 2012.04.25 |