我有一个发送 X 邮件的 PHP 进程 每次发送邮件后,我在数据库中添加一行以告知已发送邮件。
所以,我不想创建一个进度条来告诉用户 X 邮件是在 Y 上发送的( Y = 总数)
我有两个这样的 jquery 函数:
function mail_send()
{
$('.loading').css('display','block');
$.ajax({
'url': '/an/url/',
'data': {
someParam: param
},
'beforeSend':function()
{
$('#loadingBg').append('<span id="count"></span>');
setTimeout(function () {
mail_updateProgress(id);
}, 500);
}
,
'success': function (data,textStatus)
{
(....)
}
});
}
function mail_updateProgress(id) {
$.ajax({
'url': '/an/url/',
'data': {
someParam: param
},
'success': function (data) {
var res = $.parseJSON(data);
$('#count').html(res.nbSended + '/' + res.total);
}
});
}
问题是我现在不能发送超过 15 封邮件,而且我不会创建 XXX 邮件地址来测试它,但是 updateProgress() 函数只成功了一次,它发生在 mail_send() 的同一时间功能。
有错误吗?
谢谢
编辑:好的,所以 setInterval 很好,但我还有第二个问题,$.ajax 有队列吗?我正在登录 3 件事:第一:当进程进入 updateProgress 函数时第二:当 updateProgress ajax 成功时第三:当 mail_send() ajax 成功时
日志的顺序是
第一次(X 次) 第三次(1 次) 第二次(X 次)
所以,我的进度条永远不会进步,只是在发送功能结束时使 0% => 100%
在发送功能时处理进度功能的任何想法?可以委托吗?