我如何知道 ajax 请求何时完成

How do I know when an ajax request is completed

本文关键字:何时完 请求 ajax 何知道      更新时间:2023-09-26

如何知道所有ajax调用何时完成,现在我只是使用延迟超时来等待请求完成,这些是更好的方法?我想确保ajax请求完成...

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 库,你可以用 jQuery 更简单地做到这一点:

$.ajax({
    url: 'foo_url.php',
    complete: function() {
        // What you want here
    }
});

如果你使用的是jQuery的AJAX,它有一个完整的选项,请参阅文档

$.ajax({
    url: 'foo.php',
    complete: function(jqXHR, textStatus) {
        alert('AJAX call complete');
    }
});
   xmlhttp.onreadystatechange=function()
            {
                if (xmlhttp.readyState==4 && xmlhttp.status==200)
                {
                    // This is when your Ajax request is complete 
                }
            }
这取决于

你的库;例如,如果你使用的是jQuery,那么你可以使用success:参数,如果是javascript,那么你可以使用if (xmlhttp.readyState==4 && xmlhttp.status==200)语句。

如果您使用 xmlhttp 对象进行 ajax

调用,那么当 xmlhttp.readyState==4 时,它被视为 ajax 请求已完成。

$.ajax({
url: 'abc.php',
data: "&id=" + id ;
complete: function(data) {
    alert(data.responseText);
}
});