我做了一個函數,它循環遍歷每個div標籤,class =「health_report」,對於每個div,它都進行AJAX調用。唯一的問題是它使得50個AJAX調用(假設我有50個DIV標籤)立即生效。這樣可以,但爲了我的目的,我需要等到第一個AJAX調用完成(成功功能被觸發)後才能移動到下一個DIV標籤。繼承人的代碼:AJAX-等到響應再進行下一次AJAX調用之前
$('.health_report').each(function(i, obj) {
// FIRST AJAX CALL
generateHealthReport();
});
function generateHealthReport(fileID,filter,slug,reportID,importance,reputation) {
$.ajax({
type: "POST",
url: ajaxurl,
data: {
"action": 'generateHealthReport'
},
dataType: "html",
success: function (returnData) {
// do something
}
});
}
因此,一些我想這應該工作是增加一個定時器循環
我怎樣才能使它如此循環(使用jQuery的叫計時http://creativecouple.github.io/jquery-timing/)
所以代碼變成了這樣:
$('.health_report').each($).wait(3000,function(i, obj) {
// FIRST AJAX CALL
generateHealthReport();
});
循環現在暫停迭代3之間秒,這給人的第一AJAX調用一次循環移動到NE前完成xt DIV標籤。這使得AJAX調用以我需要的方式發生,但由於某種原因它出現了問題,有時候返回的HTML響應只是應該返回的HTML的一部分。有沒有另一種方法來做到這一點?我如何讓循環暫停,直到它完成的AJAX調用完成?
異步設置爲false。 http://stackoverflow.com/questions/6685249/jquery-performing-synchronous-ajax-requests,這樣在提交另一個之前,它會簡單地等待。 – Hozikimaru