maxnumId
이 비어 있거나 정의되지 않을 때까지 반복적으로 ajax 메서드를 호출하려고합니다. 현재 코드가 한 번만 발생합니다! 아무도 내가 여기서 잘못하고있는 것을 말해 줄 수 있습니까?특정 조건이 참이 될 때까지 ajax를 재귀 적으로 호출하는 방법은 무엇입니까?
<script>
var maxnumId = null;
function callApi4() {
$.ajax({
type: "GET",
dataType: "jsonp",
cache: false,
url: "https://api.somesite.com/ddddd" + (maxnumId ? "&max_id=" + maxnumId : ""),
success: function(data) {
maxnumId = data.pagination.next_max_id;
alert('maxnumId is now: ' + maxnumId);
document.myform.outputtext.value = document.myform.outputtext.value+data.pagination.next_max_id+'\n' ;
for (var i = 0; i < 100; i++) {
$(".content").append("<img class='image' src='" + data.data[i].images.low.url +"' />");
}
if(maxnumId != "undefined"){
setTimeout(callApi4(), 2000);
}
else
{
alert('finished');
}
}
});
}
</script>
<button onclick="callApi4()">call ajax first time</button>
실제로 "정의되지 않은"문자열이나 if에서 maxnumId의 실제 정의되지 않은 값을 찾고 있습니까? 정의되지 않은 값을 찾고 있다면 따옴표를 삭제해야합니다. 이것이 문제가되지 않는다면 서버에서 어떤 결과를 얻고 있습니까? –
위의 내 의견은 원래의 문제를 해결하는 데 도움이되지 않을 수도 있지만 ... 논리를 살펴보면 무한 콜백을 기대할 수 있습니다. 실제로 어떤 결과물을 얻고 있습니까? –
답장을 보내 주셔서 감사합니다. 함수를 처음 실행하면 첫 번째 API 호출에서 가져온 데이터가 하나씩 나타납니다. 그렇다면 서버에서 데이터를 다시 얻지 못합니다! 나는 버튼을 통해 함수를 호출 한 후 api가 호출 될 때까지 기다렸다가 maxnumId에 대한 빈 데이터를 얻을 때까지 기다렸습니다! 재귀 호출을하는 if 및 else 문을 내부에 배치 한 후에도 경고는 결코 팝업되지 않습니다! 그래서 내 재귀 호출이 작동하지 않는 것 같아! – user1788736