gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 02:29:27 25 4
gpt4 key购买 nike

用户第一次访问我的网站时,我使用几个 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 调用何时完成的方法,以便我可以重新加载页面。有什么建议吗?

最佳答案

在您的 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); });
}

关于javascript - 在所有 ajax 调用完成后如何重新加载页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4020123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com