Pracuję nad aplikacją internetową i muszę załadować kilka plików $ .ajax. Znalazłem coś interesującego w $ .when(). Then().Czy ktoś może wyjaśnić, w jaki sposób jQuery.when() i deferred.then() działa?
Działa świetnie, gdy nie mam nic szczególnego do roboty z danych zwróconych przez zapytanie jak w poniższym przykładzie:
$.when(
$.getScript('js/script1.js'),
$.getScript('js/script2.js')
).then(function(){
// Do whatever I want once both scripts are loaded...
});
Jeśli działa dobrze, gdy mam jeden wniosek ajax takiego:
$.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());
})
Ale jeśli próbuję następujące, nie mogę zmusić go do pracy:
$.when(
$.ajax('xml/myxml.xml'),
$.getScript('js/script.js')
).then(function(data){
// But here, I can't access $(data).find('mynode')...
})
czytamStrona, ale większość z nich była zbyt techniczna dla mnie i nie jestem w stanie zrozumieć, w jaki sposób mam być w stanie uzyskać moje dane ajaxowe, gdy używam $ .when(). Then(), aby załadować skrypty i dane z wiele źródeł.
Więc jeśli ktoś może mi pomóc dowiedzieć się, jak korzystać z moich danych ajaxowych w moim przypadku testowym powyżej, byłoby świetnie! A jeśli w międzyczasie ktoś może wyjaśnić obiekt odroczonego obiektu w sposób łatwiejszy do zrozumienia niż oficjalna dokumentacja jQuery, byłoby świetnie!
Dziękujemy!
Spróbuj sprawdzić argumenty zwrócone przez 'odroczony.następny" w tym przypadku. 'console.log (argumenty)' proszę publikować wyniki. –
Spójrz na przykład na tej stronie: http://api.jquery.com/jQuery.when/ –
Twoja metoda 'then' powinna przyjąć dwa argumenty:' .then (function (a1, a2) {'.... 'a1' będzie wynikiem pierwszego wywołania ajaxowego:' a2' będzie wynikiem wywołania getcript –