2

すべての ajax 呼び出しがいつ完了するかを知るにはどうすればよいですか?,今は遅延タイムアウトを使用してリクエストの完了を待つだけです.これらはより良い方法ですか?私は ajax リクエストが完了していることを確認したい...

4

6 に答える 6

4

XMLHttpRequestオブジェクトにはreadyStateプロパティがあり、次のonreadystatechangeように操作できます。

var xmlhttp;
if (window.XMLHttpRequest) { 
    xmlhttp = new XMLHttpRequest();
}
else { 
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4) { // xmlhttp.status==200 == successful request
        // What you want here
    }
}
xmlhttp.open("GET", "foo_url.php", true);
xmlhttp.send();
}​

そのライブラリを使用している場合は、jQueryを使用すると簡単に実行できます。

$.ajax({
    url: 'foo_url.php',
    complete: function() {
        // What you want here
    }
});
于 2012-05-07T09:28:24.937 に答える
3

jQuery の AJAX を使用している場合は、完全なオプションがあります。ドキュメントを参照してください。

$.ajax({
    url: 'foo.php',
    complete: function(jqXHR, textStatus) {
        alert('AJAX call complete');
    }
});
于 2012-05-07T09:29:40.333 に答える
0

ajax 呼び出しに xmlhttp オブジェクトを使用している場合、xmlhttp.readyState==4 の場合、ajax リクエストが完了したと見なされます。

于 2012-05-07T09:40:04.477 に答える
0
$.ajax({
url: 'abc.php',
data: "&id=" + id ;
complete: function(data) {
    alert(data.responseText);
}
});
于 2012-05-07T10:25:00.183 に答える
0
   xmlhttp.onreadystatechange=function()
            {
                if (xmlhttp.readyState==4 && xmlhttp.status==200)
                {
                    // This is when your Ajax request is complete 
                }
            }
于 2012-05-07T09:27:58.030 に答える
0

それはライブラリに依存します。たとえば、jquery を使用している場合はsuccess:パラメーターを使用でき、javascript を使用している場合はif (xmlhttp.readyState==4 && xmlhttp.status==200)ステートメントを使用できます。

于 2012-05-07T09:30:41.223 に答える