所有ajax调用完成后如何重新加载页面?

Leg*_*end 10 javascript jquery

用户第一次访问我的网站时,我使用几个ajax调用从各种来源中提取了大量信息.完成ajax调用后,如何重新加载页面?

if(userVisit != 1) {
  // First time visitor
  populateData();
}

function populateData() {
  $.ajax({
            url: "server.php",
            data: "action=prepare&myid=" + id,
            dataType: "json",
            success: function(json) {
                if(json.error) { 
                    return;
                }
                _id = response[json].id;
                getInformation(_id);
            }
  });
}

function getInformation(id) {
  $.ajax({
            url: "REMOTESERVICE",
            data: "action=get&id=" + id,
            dataType: "json",
            success: function(json) {
                if(json.error) { 
                    return;
                }

                $.ajax({
                       url: "server.php",
                       data: "action=update&myid=" + id + '&data=' + json.data.toString(),
                       dataType: "json",
                       success: function(json) {
                                if(json.error) { 
                                    return;
                                }
                      }
                });
            }
  });
}
Run Code Online (Sandbox Code Playgroud)

所以代码的作用是,它获取新用户(populateData函数)的预定义标识符列表,并使用它们从第三方服务(getInformation函数)获取更多信息.此getInformation函数查询第三方服务器,一旦服务器返回一些数据,它就会通过另一个ajax调用将该数据发送到我的服务器.现在我需要的是一种方法来弄清楚所有的ajax调用何时完成,以便我可以重新加载页面.有什么建议?

Nic*_*ver 33

在您的getInformation()电话,您可以拨打location.reload()你的success回调,就像这样:

success: function(json) {
  if(!json.error) location.reload(true);
}
Run Code Online (Sandbox Code Playgroud)

要等到任何进一步的 ajax调用完成,您可以使用该ajaxStop事件,如下所示:

success: function(json) {
  if(json.error) return;
  //fire off other ajax calls
  $(document).ajaxStop(function() { location.reload(true); });
}
Run Code Online (Sandbox Code Playgroud)