4

私はこのコードを持っています

$('#postinput').on('keyup',function(){ 
    var txt=$(this).val();

    $.ajax({
       type: "POST",
       url: "action.php",
       data: 'txt='+txt,
       cache: false,
       context:this,
       success: function(html)
       {
           alert(html);
       }

   });

});


$('#postinput2').on('keyup',function(){ 
    var txt2=$(this).val();

    $.ajax({
       type: "POST",
       url: "action.php",
       data: 'txt2='+txt2,
       cache: false,
       context:this,
       success: function(html)
       {
           alert(html);
       }

   });

});

ユーザーが をクリックし#postinput、処理に 30 秒かかるとします。その間にユーザーが をクリックした場合#postinput2。彼に警告したい"Still Processing Your Previous request"。一部の ajax がまだ処理中であるかどうかを確認する方法はありますか?

ページで多数の ajax が実行されているとします。1つでも処理中かどうかを知る方法はありますか?

4

1 に答える 1

6

AJAX 呼び出しがいつ開始されるtrueかに応じて、変数を設定できます。例:false

var ajaxInProgress = false;

$('#postinput2').on('keyup',function(){ 
    var txt2=$(this).val();

    ajaxInProgress = true;
    $.ajax({
      ..
      ..
      success: function(html) {
          ajaxInProgress = false;

通話の前に必要な場合は確認してください。

if (ajaxInProgress)
    alert("AJAX in progress!");

または、グローバル AJAX イベントを使用して変数を設定します

$( document ).ajaxStart(function() {
   ajaxInProgress = true;
});

$( document ).ajaxStop(function() {
   ajaxInProgress = false;
});
于 2013-10-29T13:10:05.813 に答える