如何知道所有ajax调用何时完成?,现在我只是使用延迟超时等待请求完成,这是更好的方法吗?我想确保ajax请求完成...
答案 0 :(得分:5)
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
}
});
答案 1 :(得分:3)
如果您正在使用jQuery的AJAX,它有一个完整的选项,请参阅docs
$.ajax({
url: 'foo.php',
complete: function(jqXHR, textStatus) {
alert('AJAX call complete');
}
});
答案 2 :(得分:0)
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
// This is when your Ajax request is complete
}
}
答案 3 :(得分:0)
这取决于你的图书馆;例如,如果您使用的是jquery,则可以使用success:
参数,如果是javascript则可以使用if (xmlhttp.readyState==4 && xmlhttp.status==200)
语句。
答案 4 :(得分:0)
如果您正在使用xmlhttp对象进行ajax调用,那么当xmlhttp.readyState == 4时,它将被视为ajax请求已完成。
答案 5 :(得分:0)
$.ajax({
url: 'abc.php',
data: "&id=" + id ;
complete: function(data) {
alert(data.responseText);
}
});