Javascript ajax完成后,如何显示加载图标

Javascript ajax完成后,如何显示加载图标,javascript,jquery,ajax,jquery-mobile,Javascript,Jquery,Ajax,Jquery Mobile,我有一个简单的javascript函数,如下所示: function showHint() { var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { //extract data here

我有一个简单的javascript函数,如下所示:

function showHint() {
    var xmlhttp = new XMLHttpRequest();

    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {

            //extract data here

        }
    }

    xmlhttp.open("GET", "articles.php?q=" + cat + "&year1=" + start_year + "&year2=" + end_year, true);

    xmlhttp.send();

}
我希望能够在ajax完成后显示我的加载图标。我使用以下命令在js的最开始显示我的加载图标:

$.mobile.loading("show");
使用jquery mobile很好地显示了图标。但是,我只需要在ajax完全完成后隐藏图标。我曾尝试像这样在jQuery中使用.done,但我认为我没有正确地使用它:

xmlhttp.onreadystatechange.done(function(){
    $.mobile.loading("hide");
});
您需要在ReadyStateChange回调函数上使用它

xmlhttp.onreadystatechange = function () {
    if (xmlhttp.readyState == 4) {
         $.mobile.loading("hide");
    }
}
因为您已经在使用。你可以简单地使用like

您需要在ReadyStateChange回调函数上使用它

xmlhttp.onreadystatechange = function () {
    if (xmlhttp.readyState == 4) {
         $.mobile.loading("hide");
    }
}
因为您已经在使用。你可以简单地使用like


这里是原生JS和jQuery的奇怪混合。如果您使用jQuery作为加载微调器,那么您也可以使用它来发送AJAX请求,这将是一个使用$.get.Odd混合原生JS和jQuery的单行程序。如果您使用jQuery作为加载微调器,那么您也可以使用它发送AJAX请求,这将是一个使用$.get.yep的单行程序,这就成功了。你能解释readyState等于4意味着什么吗?谢谢@RDoolabh,表示所有数据都已接收。是的,成功了。你能解释readyState等于4意味着什么吗?谢谢@RDoolabh,表示所有数据都已接收。