我有一個特定的函數,我想運行一次,並且只在完成幾個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 2010-08-04 11:58:17