|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
|
[JS/jQuery] Eseguire un'istruzione quando tutte le richieste Ajax sono terminate
Come da titolo, sto sbattendo la testa su questo problema. Il codice ( parziale ) è il seguente:
Codice:
$('td.download').each(function(i,Elem){
res=$(this).siblings().eq(0).children('a.chapterLink').attr('href').split('/');
link=Elem.baseURI+res[3]+'/'+res[4];
$.get(link,function(data){
var image=$(data).find('#mainImg')[0].src;
imageArray.push(image);
});
});
Tuttavia, siccome .each è sequenziale mentre le richieste sono asincrone, anche utilizzando $.when non riuscirei comunque a capire quando tutte le richieste ajax sono state completate ( proprio a causa della sequenzialità del .each ). Qualcuno mi sa indicare come fare per eseguire un'istruzione al termine di tutte le richieste ajax ( ovvero dopo l'esecuzione dell'ultimo .each )?
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2787
|
C'è un evento apposito, ammetto che non lo conoscevo prima... ecco qua:
http://api.jquery.com/ajaxStop/ |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
|
Leggendario! Funziona
Ho poi un altro dubbio che non riesco a chiarire ( nonostante ci sia una tonnellata di documentazione su internet ). Se voglio mettere in cache le immagini ( ovvero fare un prefetching ), se faccio così è sufficiente? Codice:
$.get(link,function(data){
var image = new Image();
image.src=$(data).find('#mainImg')[0].src;
imageArray.push(image);
});
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2787
|
Dipende da quello che vuoi fare... In quel modo avvii la richiesta delle immagini, se invece vuoi gestire l'avvenuto caricamento devi anche gestire l'evento load di Image.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:27.


















