여러 번 AJAX 요청을 완료 한 후에 한 번 실행하려는 특정 기능이 있습니다.여러 AJAX 요청이 완료된 후에 만 함수를 트리거하십시오.
내 현재 솔루션은 약간 다음과 같습니다 : 위의
function doWork() {
//This is the function to be run once after all the requests
}
//some tracking/counting variables
var ajaxDoneCounter = 0;
var numOfAjaxRequests = 5;
var workDone = false;
function doWorkTrigger() {
ajaxDoneCounter++;
if(!workDone && ajaxDoneCounter >= numOfAjaxRequests) {
workDone = true;
doWork();
}
}
// ...
//and a number of ajax requests (some hidden within functions, etc)
//they look something like this:
$.ajax({
url: "http://www.example.com",
dataType: "json",
success: function(data) {
//load data in to variables, etc
doWorkTrigger();
}
});
한 명백한 함정이 성공하지 어떤 AJAX 호출이 ajaxDoneCount
를 증가하지 않습니다 그래서 doWork()
아마 호출되지 않을 것입니다. 어떤 $.ajax
안에있는 error
콜백을 사용하여 그걸 해결할 수 있습니다. 너무 걱정하지 않아도됩니다.
내가 알고 싶은 것은 위가 안전한지 또는 좋은 연습인지 여부입니다.
내가 놓친 트릭이나 더 잘 작동 할만한 것이 있습니까?
나는 당신이 문제 설명을 읽는 것이 좋습니다. "나는 더 나은 것을 생각할 수 없다"는 것이 확실하지만, 단지 "대신 대답하는"것이 맞습니다. ;-) – Chris