Bir web uygulamasında çalışıyorum ve birkaç dosya yüklemem gerekiyor $ .ajax. $ .when(). Sonra() içinde ilginç bir şey buldum.Birisi jQuery.when() ve deferred.then() yönteminin nasıl çalıştığını açıklayabilir mi?
Ben bu örnekte olduğu gibi isteği tarafından döndürülen verilerle yapmak için özel bir şey olmadığı zamanlarda Harika çalışır:
$.when(
$.getScript('js/script1.js'),
$.getScript('js/script2.js')
).then(function(){
// Do whatever I want once both scripts are loaded...
});
Eğer işler iyi böyle tek ajax isteği olduğunda:
$.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());
})
Ama aşağıdakileri deneyin, işe alamıyorum:
$.when(
$.ajax('xml/myxml.xml'),
$.getScript('js/script.js')
).then(function(data){
// But here, I can't access $(data).find('mynode')...
})
benokumaksayfa ama çoğu benim için çok teknikti ve ben komut dosyaları ve veri yüklemek için $ .when(). Sonra() kullanırken ajax verilerimi alamadım nasıl anlayamıyorum anlayamıyorum çoklu kaynaklar.
Eğer birisi yukarıda benim test durumumda ajax verilerinin nasıl kullanıldığını öğrenmeme yardımcı olabilirse, bu harika olurdu! Ve eğer bu arada birisi ertelenmiş nesne şeylerini resmi jQuery belgelerinden daha kolay anlayabilecek bir şekilde açıklayabilirse, bu harika olurdu!
Teşekkür ederiz!
Bu durumda 'deferred.then' tarafından döndürülen argümanları incelemeyi deneyin. 'console.log (argümanlar)' lütfen sonuçları yazınız. –
Bu sayfadaki örneğe bakın: http://api.jquery.com/jQuery.when/ –
Sizin 'o zaman yönteminiz iki argümanı kabul etmelidir:' .then (function (a1, a2) {'.... 'aa' ilk ajax çağrısının sonuçları olacaktır. a2', makbuz çağrısının sonuçları olacaktır –