2

すべての AJAX 呼び出し (GET と POST の両方) を検出する方法はありますか? AJAX 呼び出しプロセスの実行中に、読み込み中の div を表示する一般的な方法を実行する必要があります。以下のコードのようなもの:

$.ajax({
   url: 'my/url',
   type: "GET",
   dataType: "json",
   beforeSend: function() {
       $('#loading').show();
   },
   success: function() {
       $('#loading').hide();
       // do some stuff...
}

すべての AJAXbeforeSend()success()ビヘイビアー (ロード div の表示と非表示) を呼び出す代わりに、それを処理する一般的な方法を探しています。AJAX 呼び出しがあるときは、次のようにします。

$.ajax({
   url: 'my/url',
   type: "GET",
   dataType: "json",
   success: function() {
       // do some stuff...
}

そのbeforeSend()動作がこのリクエストで暗黙的であり、success()非表示動作についても同じ場合。どうすればこのことを処理できるか分かりますか?

皆さん、ありがとうございました!

4

2 に答える 2

4

.ajaxStart()はい、次のような&.ajaxStop()メソッドを使用してこれを行うことができます。

$(document).ready(function () {
    $(document).ajaxStart(function () {
        $('#loading').show();
    }).ajaxStop(function () {
        $('#loading').hide();
    });
});
于 2013-11-08T12:12:41.963 に答える
2

おかしなことに、私は今朝これを自分でやろうとしていました!

$('#loading').bind('ajaxSend', function() {
    $(this).show();
}).bind('ajaxStop', function() {
    $(this).hide();
}).bind('ajaxError', function() {
    $this.hide();
});

明らかに、これを実現するにはさまざまな方法がありますが、私はロード中のメッセージの可視性を AJAX イベントにバインドすることを好みます。その逆ではありません...

于 2013-11-08T12:13:03.823 に答える