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)