所以這裏是問題所在:Javascript for loop比AJAX呼叫更快
我正在爲每個帖子循環播放AJAX。這個想法是從ajax調用中獲得一個True或False。但我認爲循環速度快於ajax調用,我只能得到一個結果。這個結果也適用於其他帖子,所以我沒有爲其他帖子弄虛作假,而是得到了真實的結果。有沒有一種方法可以讓循環等到ajax調用完成?異步:
function changMonth(month, active, url){
$('#eventTimeline').empty();
$('#month1, #month2, #month3, #month4, #month5, #month6, #month7, #month8, #month9, #month10, #month11, #month12').removeAttr('class');
$(active).attr('class', 'active');
base_url = $('#base_register').val();
user_id = $('#user_id').val();
$.post(url, {'month': month} , function(data){
for(var i = 0; i < data.length; i++)
{
var splitDateString = new String(data[i].event_date);
var splitDateArray = splitDateString.split('-');
$.post(base_url + '/searchFilter/getRegisteredParents', {'event_id' : data[i].event_id}, function(data2){
checkboolean = data2.check;
ajaxFinnish = true;
}, "json");
if(ajaxFinnish == true)
{
$('#eventTimeline').append(
'<div class="post' + i + '">' +
'<h3>' + data[i].event_name + '</h3>' +
'<div class="eventImage"><img width="113px" height="113px" src="' + data[i].event_photo + '" alt=" " /></div>' +
'<div class="eventText">' + data[i].event_details + '</div>' +
'<div class="klas"><span>' + splitDateArray[2] + ' ' + maandArr[splitDateArray[1]] + '</span>' + data[i].group + '</div>' +
'</div>'
);
$(".post" + i).css({'width': '605px', 'background-color': '#FFFFFF', 'border-bottom': 'solid 1px #4c585e', 'margin': '10px 5px 5px 5px', 'overflow': 'hidden' });
if(checkboolean == "true")
{
//console.log('TRUE');
$(".post" + i).append('<a href="#" class="eventMore">Uitschrijven</a>');
}
else
{
//console.log('False');
$(".post" + i).append('<a href="#" class="eventMore">Inschrijven</a>');
}
ajaxFinnish = false;
}
console.log(checkboolean);
}
}, "json");}
HOLY CRAP! **異步** JavaScript和XML == ** AJAX **。您剛剛獲得了轉發器徽章,以再次詢問舊的10000問題。我們可以將這個問題作爲這些問題之一的重複來解決(http://stackoverflow.com/search?q=return+from+ajax+callback)ARGGG! – gdoron