2012-01-28 5 views
10

ajaxリクエストが送信されるたびに、「読み込み中」のプログレスバーを表示したいと思います。 ajaxリクエストがjQueryを使用して送信されるときはいつでも通知することが可能ですか?以下のために働いていなかったいくつかの理由または別の$.ajaxSetup()についてjquery内のすべてのajaxリクエストをキャッチ

$.ajaxSetup({ 
    beforeSend: function() { 
     // show progress spinner 
    }, 
    complete: function() { 
     // hide progress spinner 
    } 
}); 

答えて

18

を使用してみてください私。

注:グローバルコールバック関数は、それぞれの グローバルAjaxのイベントハンドラメソッド-.ajaxStart(で設定する必要があります)、.ajaxStop()、 .ajaxComplete(ただしdocsて読んだ後、私は次を発見しました)、.ajaxError()、.ajaxSuccess()、.ajaxSend() - $ .ajaxSetup()のオプションオブジェクト内に ではなく。

代わり$.ajaxStart()$.ajaxComplete()をお試しください:

$(document).ajaxStart(function() { 
    console.log('Request Initiated'); 
}); 
$(document).ajaxComplete(function() { 
    console.log('Request Complete'); 
}); 
+0

を使って行うべきことです!ありがとうございました。 – LordZardeck

+1

jQeuryを使用していないもの、または不可能なものでも捕捉できますか? – rain01

+1

@ rain01、いいえ、これはjQuery AJAXリクエストのみを捕捉します。 –

2

はあなたがページ全体に適用されますグローバルAJAXのプロパティを設定する$.ajaxSetup()メソッドを使用することができますjQueryのajaxStartイベントに

+1

私はおそらく( 'ajaxStart'でのみ第一1対)それはすべてのAjaxリクエストのためにトリガされた代わりとして' ajaxSend'を使用します。 http://stackoverflow.com/questions/3735877/whats-the-difference-between-1-ajaxstart-and-ajaxsend-and-2-ajaxstop-and –

+0

もうひとつの注意:@LordZardeckは、「読み込み」 ... "すべてのajaxリクエストが正常に終了するか、エラーが発生したときにプログレスバーを表示します。これは完璧に動作する '.ajaxError()'と '.ajaxStop()' –

関連する問題