Sto lavorando a un'applicazione web e ho bisogno di caricare alcuni file $ .ajax. Ho trovato qualcosa di interessante in $ .when(). Then().Qualcuno può spiegare chiaramente come funziona jQuery.when() e deferred.then()?
Funziona benissimo quando non ho nulla di speciale a che fare con i dati restituiti dalla richiesta come in questo esempio:
$.when(
$.getScript('js/script1.js'),
$.getScript('js/script2.js')
).then(function(){
// Do whatever I want once both scripts are loaded...
});
Se funziona bene quando ho una singola richiesta Ajax in questo modo:
$.when(
$.ajax('xml/myxml.xml')
).then(function(data){
// Here I can work with data like I would with a regular ajax request
alert($(data).find('mynode').text());
})
Ma se provo quanto segue, non riesco a farlo funzionare:
$.when(
$.ajax('xml/myxml.xml'),
$.getScript('js/script.js')
).then(function(data){
// But here, I can't access $(data).find('mynode')...
})
ho letto il 0.123.pagina ma la maggior parte di esso era troppo tecnico per me e non sono in grado di capire come dovrei essere in grado di ottenere i miei dati Ajax quando sto usando $ .when(). Then() per caricare script e dati da più fonti.
Quindi, se qualcuno può aiutarmi a scoprire come utilizzare i miei dati Ajax nel mio test case sopra, sarebbe fantastico! E se nel frattempo qualcuno può spiegare la cosa oggetto differito in un modo che è più facile da capire rispetto alla documentazione ufficiale di jQuery, sarebbe fantastico!
Grazie!
Provare a controllare gli argomenti restituiti da 'deferred.then' in quel caso. 'console.log (argomenti)' per favore pubblica i risultati. –
Guarda l'esempio in questa pagina: http://api.jquery.com/jQuery.when/ –
Il tuo metodo 'then' dovrebbe accettare due argomenti:' .then (function (a1, a2) {'.... 'a1' sarà il risultato della prima chiamata ajax.' a2' sarà il risultato della chiamata Getcript –