2

「whatever.php」を介してデータを取得しようとする次のコードがあります。この php ファイルは、データベース要求を取得するのに約 20 秒かかります。サーバーがデータで応答するまで、ナビゲーターはブロックされます (非同期にすると、クリックまたは入力を行うことができますが、前述の 20 秒後にのみリダイレクトされます)。この ajax インスタンスを中止しようとしましたが、中止した後、その時間も待機します。

私がやろうとしているのは、ユーザーがリクエストが完了してテーブルが表示されるのを待ちたくない場合、他のサブページへのリンクを開くことができるはずだということです。

var contenidoAjax = $('div#table_solicitudes').html('<p><img src="'.URL.'images/ajax-loader.gif" /></p>');
var instanciaAjax=$.ajax({   
url: whatever.php, 
success: function(data) {   
    if (data == "bad") {
        $('div#table_solicitudes').html("Went bad");
    }
    else {  
        $('div#table_solicitudes').html(data);
    }
}

御時間ありがとうございます!

4

1 に答える 1

0

インジケータを表示および非表示にするには、「beforeSend」および「complete」メソッドを使用する必要があります。

例 :

$.ajax({   
   url: whatever.php, 
   beforeSend: function(){
      $('div#table_solicitudes').html('<p><img src="'.URL.'images/ajax-loader.gif" /></p>'); // add indicator
   },
   complete: function(){
      $('div#table_solicitudes').html(""); // remove indicator
   }
   // existing stuff
}

これが役立つことを願っています!!

于 2012-09-25T12:42:29.377 に答える