La prima volta che un utente visita il mio sito Web, sto tracciando molte informazioni da varie fonti utilizzando un paio di chiamate Ajax. Come ricarico la pagina una volta che le chiamate ajax sono state fatte?Come ricarico la pagina dopo che tutte le chiamate ajax sono state completate?
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;
}
}
});
}
});
}
Così che cosa fa il codice è, si ottiene una lista di identificatori predefiniti per un nuovo utente (populateData
funzione) e li utilizza per ottenere ulteriori informazioni da un servizio di terze parti (getInformation
funzione). Questa funzione getInformation
interroga un server di terze parti e una volta che il server restituisce alcuni dati, invia tali dati al mio server tramite un'altra chiamata ajax. Ora quello di cui ho bisogno è un modo per capire quando tutte le chiamate ajax sono state completate in modo da poter ricaricare la pagina. Eventuali suggerimenti?
Grazie. Ma cosa succede se alcune chiamate ajax al mio server all'interno del callback 'successe 'nella funzione' getInformation' sono ancora in sospeso? Questo non aggiornerebbe semplicemente la pagina senza considerare quello? O mi sta sfuggendo qualcosa? – Legend
@Legend - Sì, se vuoi ritardare fino a quando non sono tutti fatti, basta fare '$ (document) .ajaxStop (function() {location.reload (true);});' e verrà eseguito quando tutti quelle richieste complete. –
Ciò ha perfettamente senso, ma per qualche motivo, quando inserisco questa chiamata, la pagina continua ad aggiornare continuamente. – Legend