0

私は AJAX を初めて使用します。AJAX 要求をループでサーバーに送信し、サーバーからの応答を表示したいと考えています。シナリオはクライアントページにあります。1つずつ送信したいテーブルの配列があり、サーバーはテーブル名を受け取り、処理してから応答を送信します。クライアント側では、応答が到着したときに応答を表示したい.eg

Table 1 processed
Table 2 processed
Table 3 processed
COMPLETED

document.getElementById('btnReport').style.display='none'; var http = 新しい XMLHttpRequest();

for (var i = 0; i < tableArray.length; i++) 
{
http.open("GET","ServerPage.php?t="+tableArray[i], true);
http.send();
http.onreadystatechange = function() 
{
  if(http.readyState == 4 && http.status == 200) 
  {
    eLoader.hide();
    document.getElementById('txtResult').innerHTML += http.responseText;
    document.getElementById('btnReport').style.display='';

  }
}

}

4

2 に答える 2

0

使用jQuery:

$(function(){
    $(someButtonElement).on('click', function(){
        var tableArrayLen = tableDataArray.length, i = 0;
        (function sendRequest(i){
            $.ajax({
                url: 'your URL here',
                data: tableDataArray[i],
                success: function(d){
                    $(someResultDiv).append(d);
                    if(i < tableArrayLen) {
                        i++;
                        sendRequest(i);
                    }
                }
            });
        }();
    });

});
于 2012-10-19T08:58:50.883 に答える
0

あなたは JavaScript を初めて使用するので、コーディングを容易にするjQueryなどのライブラリを使用することをお勧めします。これも JavaScript ですが、使いやすいようにいくつかの定義済み関数を追加するだけです。

あなたの質問に、jQuery には というメソッドがあります$.ajax()。それを使用して、timersあなたが望むものを達成することができます。

通常、ページがロードされたときにリクエストを開始する必要があります。コードを次の$(document).ready(function(){});ように挿入します。

$(document).ready(function(){
    $("a.load").click(function(){
        $("#result").load("phpPage");
    });
});

ここでは$.load()、要素に URL をロードするという関数を使用しました<div id="result"></div>。特定の要素に置き換えることができます。

于 2012-10-19T08:41:44.453 に答える