A volte sulla mia pagina eseguo molte chiamate Ajax contemporaneamente. L'idea è che ogni elemento venga aggiornato man mano che i suoi dati diventano disponibili (non voglio fare la coda alle chiamate). A volte, tuttavia, la pagina Web non aggiorna nessun elemento finché tutte le chiamate ajax non sono state completate.La pagina attende tutte le chiamate AJAX da completare prima dell'aggiornamento
Ad esempio, ho quattro immagini di seguito che sto aggiornando: ogni immagine ha il proprio callback ajax che aggiornerà la sua origine una volta che i dati saranno disponibili; il codice simile a questa:
for (var i = 0; i < numPictures; i++){
Dajaxice.Images.load_picture(callback_function, {'pictureId': i});
}
il callback mette l'immagine nel suo elemento dell'interfaccia utente, una volta il suo pronto:
imgSnippet = '<img src="' + data.img_source + '"/>'
$("#" + data.container_id).html(imgSnippet);
(i dati sono gli oggetti di questa funzione ricevuto dal server)
Sto usando (come puoi vedere nell'esempio) dajax (plugin per django) per la funzionalità AJAX. Sul lato server ho un Apache (2.2) che esegue django 1.3 tramite mod_wsgi.
Quando eseguito, anche se alcune chiamate ajax terminano prima (posso vederlo sul mio server), la pagina non aggiorna nessun elemento fino a quando non ritorna l'ultima chiamata.
Qualche suggerimento?
Grazie,
Questo è un duplicato di http://stackoverflow.com/questions/7504264/ajax-simultaneous-loading-of-multiple-images, in cui le persone sembrano aver risposto alla tua domanda. Non è questo il caso? – dyoo
Le chiamate ajax sono sincrone? In tal caso, potresti non ricevere gli aggiornamenti dello schermo finché non ritorni al controllo di javascript nel sistema. – jfriend00
@dyoo: buon posto, ma in realtà non è quello. Lo vedo accadere su un server Apache multi-thread – Goro