2016-08-09 4 views
0

페이지에 여러 요소 (2에서 20까지)가 있으므로 $가있는 $ .each를 실행해야합니다. 아약스 내부에 전화 해. 모두 비동기로 발생하고이 $ .ajax 호출이 모두 끝나면 프로그램을 계속 진행해야합니다 ...

이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

$. 모두 동기화되어 있지만 $ .ajax를 실행하면 비동기가됩니다. 고정 된 번호의 아약스 호출이 없으므로 $ .when 및 $ .done을 사용하는 것이 어렵다고 생각됩니다.

?

+1

문제를 설명하는 데 도움이되도록 코드를 입력하십시오. [최소한의 완전하고 검증 가능한 예제를 만드는 방법] (http://stackoverflow.com/help/mcve)를 참조하십시오. – showdev

+0

비동기'$ .ajax()'메소드를 실행하고 잊어 버린 경우 반복하지 말고 계속 반복하십시오 ... –

+0

@NickBull - $ .ajax 호출이 $ .ajax 통화가 완료되었습니다. –

답변

0

스토어 당신의 arrayjqXhr Objects$.when의 매개 변수로 배열을 사용하는 function.prototype.apply()를 사용하여 jQuery.when를 호출합니다.

var deferreds = []; 
for (i = 0; i < 10; i++) { 
    var jqxhr = $.ajax({ 
    //ajax options 
    }); 
    deferreds.push(jqxhr); 
} 

$.when.apply(this, deferreds).done(function(){ 
    //This will wait for all ajax requests to finish before running 

    console.log(arguments); //arguments will contain the results of ajax requests 
    //... 
}); 
관련 문제