2009-12-16 3 views
0

문제는 내가 $ .get, $. post 또는 $ .ajax를 사용할 때마다 서버가 처리 할 때 콜백을 트리거하는 방법을 찾을 수 없습니다. beforeSubmit 메서드를 통해 ajaxform 플러그인을 사용하여 수행 할 수 있지만 이전에 언급 한 함수를 사용하면이를 수행 할 방법을 찾을 수 없습니다. $ .ajax에는 beforeSend 메서드가 있지만 문서에 따르면 "헤더를 수정하기위한 콜백"이 필요합니다. 페이지 차단, 팝업 표시, 애니메이션 GIF 표시 등의 콜백을 원합니다.네이티브 jquery 아약스 함수로 진행 표시

서버가 $ .ajax, $ .get, $를 통해 요청을 처리하고 있음을 보여주는 방법이 있습니까? . post, $() load?

미리 감사드립니다.

+0

모든 의견을 어떻게? 그것은 당신이 원하는대로 할 수 있습니까? – jitter

답변

1

이미 another question에서 보였습니다. ajaxStart을 어떻게 사용할 수 있습니까? 여기

내가 제안합니다 또 다른 방법은 내 대답에이

$('.be-delete').live('click', function(e) { 
    e.preventDefault(); 
    var object =$(this); 
    // if request hasn't finished after 250ms show spinner 
    // if request is fast the timer is canceled in success/error 
    var timer = setTimeout(function() { 
     //I use append here (instead of html()) which doesn't destroy original content 
     //now you only need to use CSS img.spinner { ... } to position the spinner correctly 
     object.parent().append('<img class="spinner" src="media/images/jquery/spinner.gif"/>'); 
    }, 250); 
    var url = object.attr('href'); 
    $.ajax({ 
     url : url, 
     error : function(){ 
      clearTimeout(timer); 
      object.find("img#spinner").remove(); 
      alert('An error has occurred, no updates were made'); 
     }, 
     success : function() { 
      clearTimeout(timer); 
      object.parent().fadeOut('slow', function(){object.parent().remove()}); 
     } 
    }); 
}); 
+0

우수 대안. +1 – Aaron

+0

은 매력처럼 작동합니다! 감사! – yretuta

1

당신은 내가 믿는 ajaxStart를 찾고 있습니다. 예제를 살펴보십시오.