如何知道所有 ajax 调用何时完成?,现在我只是使用延迟超时来等待请求完成,这是更好的方法?我想确保 ajax 请求完成......
问问题
9150 次
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
如果您使用 xmlhttp 对象进行 ajax 调用,那么当 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 回答