用户第一次访问我的网站时,我会使用几个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;
}
}
});
}
});
}
代码所做的是,它获取新用户(populateData
函数)的预定义标识符列表,并使用它们从第三方服务(getInformation
函数)获取更多信息。此getInformation
函数查询第三方服务器,一旦服务器返回一些数据,它就会通过另一个ajax调用将该数据发送到我的服务器。现在我需要的是一种方法来弄清楚所有的ajax调用何时完成,以便我可以重新加载页面。有什么建议吗?
答案 0 :(得分:33)
在getInformation()
来电中,您可以在location.reload()
回调中致电success
,如下所示:
success: function(json) {
if(!json.error) location.reload(true);
}
要等到任何进一步的 ajax调用完成,您可以使用ajaxStop
event,如下所示:
success: function(json) {
if(json.error) return;
//fire off other ajax calls
$(document).ajaxStop(function() { location.reload(true); });
}
答案 1 :(得分:0)
您可以直接重定向到server.php文件中使用标题定义功能的同一页面('位置:html-page');
答案 2 :(得分:-1)
//document.location.reload(true);
window.location = window.location;