用戶第一次訪問我的網站時,我使用幾個Ajax調用從各種來源獲取大量信息。如何在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函數中'success'回調中的一些ajax調用我的服務器仍然處於未決狀態呢?這不是僅僅刷新頁面而沒有考慮到這一點?或者我錯過了什麼? – Legend 2010-10-26 01:54:30
@Legend - 是的,如果你想延遲,直到它們全部完成,只要執行'$(document).ajaxStop(function(){location.reload(true);});'這些請求完成。 – 2010-10-26 01:55:44
這樣做總有道理,但由於某種原因,當我插入此調用時,頁面始終刷新。 – Legend 2010-10-26 02:00:58