1
我想發送電子郵件給> 2000個收件人。我做了一個發送50封電子郵件的ajax電話,我想重複它,直到所有電子郵件都會發送。 PHP函數返回一個包含3個索引,成功(計數成功郵件),失敗(計數失敗郵件)和完成(確定不再有電子郵件存在)的數組。因此,我會收到電子郵件數量,然後使用計數器(i)確定發送的電子郵件數量。當我> =計數時,我想斷開循環。這裏是我的代碼:在jquery中爲ajax調用循環
function sendEmailStepByStep(imageAddress, counts) {
$(".feature div").append("<br />Please wait...<div class='feature_process'> </div>" + "<div class='feature_message'>Success: <span id='success_email'>0</span>, Failed: <span id='failed_email'>0</span></div>");
var i = 0;
timer = setTimeout(function() {
$.ajax({
type: "GET",
url: "",
dataType: 'json',
data: {
group: 'packages',
do :'emailPackageUsingAjax',
image: imageAddress,
num: i
}
}).done(function (response) {
console.log('success');
console.log(response);
$("#success_email").html(response.Success);
$("#failed_email").html(response.Failed);
i = i + response.Success + response.Failed;
if (i > counts || response.Finish == 'true') {
clearTimeout(timer);
}
}).fail(function (response) {
$(".feature_message").append(response.responseText);
console.log("error");
console.log(response);
clearTimeout(timer);
})
}, 1000);
}
爲什麼這隻被稱爲一次?
我沒有得到一個setInterval,我看到一個setTimeout ...爲什麼它會運行多次 – Ohgodwhy 2014-10-31 09:14:54
在哪裏我必須添加間隔? – 2014-10-31 09:15:52
http://www.w3schools.com/jsref/met_win_setinterval.asp反對http://www.w3schools.com/jsref/met_win_settimeout.asp Timeout在一段時間後調用代碼,間隔反覆調用它 – Kyborek 2014-10-31 09:16:34