0
내가 잘못하고있는 것을 이해할 수 없다. while
루프가 AJAX 함수를 실행하여 드롭 다운에서 선택한 사람들의 양에 대해 PHP 파일에서 데이터를 가져옵니다.jquery ajax while 루프가 이상한 순서로
$(document).on('change', '#attendingCount', function() {
$(".person-container").html("");
var amount = $(this).val();
var i = 0;
while (i < amount) {
getPerson(i);
i++;
}
});
getPerson(0);
function getPerson(e) {
$.ajax({
type: 'post',
url: './person.php',
data: {
"amount": e
},
success: function(data) {
$(".person-container").append(data);
},
error: function() {
console.log('error');
}
});
}
결과가 쏟아지면 그 순서는 완전히 무작위입니다. 정확히 무엇이 잘못 되었습니까?!
AJAX is ..... 기다려 ... 비동기! 요청한 순서대로 응답을받을 것이라고 보장 할 수는 없습니다. –
AJAX 호출을 사용하여 모든 사람을 얻지 않겠습니다. 대신 원하는 사용자 수만큼 JSON 배열을 반환 한 다음 컨테이너에로드하십시오. – LinkinTED
AJAX 호출이 비동기이기 때문에 본질적으로 잘못된 것은 수행하지 않습니다. 즉, 요청을 순서대로 보낼 수 있지만 데이터를 전송하는 데 걸리는 시간, 서버가 각 요청을 처리하는 데 걸리는 시간 및 응답을 전송하는 데 걸리는 시간에 따라 완전히 다른 요청으로 되돌아 갈 수 있습니다 . 요청을 순서대로 수신해야하는 경우 하나씩 순서대로 연결해야합니다. 더 나은 것은 하나의 요청으로 모든 데이터를 전송하는 것입니다. –