loadInfo: function(){
var jsonCounter = 0,
room = ['room1','room2','room3'],
dates = [],
prices = []
$.each(booking.rooms, function(key, room_name) {
$.getJSON('/get_info.php?room='+room_name, function(data) {
dates[room_name] = data
jsonCounter++
})
$.getJSON('/get_info.php?room='+room_name+'&prices', function(data) {
prices[room_name] = data
jsonCounter++
})
})
function checkIfReady() {
if (jsonCounter === rooms.length * 2) {
clearInterval(timer)
run_the_rest_of_the_app()
}
}
var timer = setInterval(checkIfReady, 100)
}
(修改了很多,因爲它是一個類等等等等的一部分)觸發回調完成
這感覺有點hackish的那一刻,作爲定時器的使用似乎垃圾。我會使用$ .when和$ .done,但我不知道可能有多少個房間,所以我不知道該在什麼時候放入。
如何確保run_the_rest_of_the_app()僅在所有AJAX請求返回後才被調用?
+1非常優雅 – 2012-04-09 15:31:55