AJAX 호출이있는 사용자 목록을 얻었지만 AJAX 내에서 다른 AJAX를 호출하여 첫 번째 AJAX 호출과 관련하여 얻을 수없는 정보를 얻습니다.jQuery AJAX 다른 AJAX 호출 내부. 동기화 및 완료된 문제
이것은 기본적으로 내가 사용하고있는 구조이며, 불필요한 코드를 제거했습니다. 여기저기서 일부 구문 오류가있을 수 있습니다. 하지만 코드는 기본적으로 작동하지만 몇 가지 문제가 있습니다. AJAX와 나는 다시 보여주고 싶은 완료되면
function doAJAX(){
$(".loading").show();
$("#table").hide();
$.ajax({
type: "POST",
url: "@Url.Action("Action", "Controller")",
data: { variable: varVariable},
dataType: "json",
success: function (data) {
$.each(data, function (index, value) {
$.ajax({
type: "POST",
url: "@Url.Action("Action", "Controller")",
data: { variable: value.id},
success: function (data2) {
$.each(data2, function (index2, value2) {
$("#tableBody").append("<tr><td>" + value.test +"</td><td>" + value2.test +"</td></tr>");
});
}
});
});
}
});
}
나는, 처음에 내 테이블을 숨 깁니다. 정확히 어디에 놓아야합니까? 첫 번째 AJAX 성공 함수의 끝 부분에 배치하더라도 다른 AJAX가 실행되는 동안 실행되기 때문에 작동하지 않습니다.
내 목록이 AJAX가 실행될 때마다 이상한 순서로 끝나고, 내 목록이 알파벳순으로 정렬되지만,이 AJAX는 매번 무작위로 끝납니다. 때로는 사용자 Adam이 시작될 때가 있습니다. 중간 등. 그것은이 두 이상한 순서
에 끝나는 이유는 아마 인 목록 자체는 괜찮 및 올바른 순서로
는 아마 두 번째 AJAX 호출을 늦추고 수학을 많이 할 두 AJAX가 "함께"실행되지 않고 개별적으로 서로 동기화되도록하기 때문에 문제가 발생하고 AJAX가 완료되고 이제는 내 테이블을 보여줄 수있는 좋은 방법이 있습니까?
두 번째'ajax' 호출에'async : false'를 추가 할 수 있습니다. 그러나 브라우저가 정지 될 수 있습니다. – ojovirtual
@HenrikP : 여기 만드는 아약스 전화 수준은 매우 복잡합니다. 가능한 경우 최대 데이터를 검색하기 위해 단일 아약스 호출을 시도하십시오. – dreamweiver
@ojovirtual 이것은 이렇게하는 것 같습니다. 또한 동결 문제가 특정 브라우저가 아니라면 느린 컴퓨터에서 작동하는 것으로 보입니다. – HenrikP