私は X メールを送信する PHP プロセスを持っています。各メールの送信後、メールが送信されたことを伝えるためにデータベースに行を追加します。
したがって、X メールが Y ( Y = 合計) に送信されたことをユーザーに伝えるためのプログレス バーを作成したくありません。
私はそのような2つの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() 関数は 1 回だけ成功し、mail_send() と同時に発生します。関数。
エラーはありますか?
ありがとう
編集:わかりました、setIntervalは良いですが、2番目の問題があります.$.ajaxのキューはありますか? 私は 3 つのことをログに記録しています: 最初: プロセスが updateProgress 関数で入力されたとき 2 番目: updateProgress ajax が成功したとき 3 番目: mail_send() ajax が成功したとき
ログの順番は
1回目(X回) 3回目(1回) 2回目(X回)
だから、私のプログレスバーは決して進まず、送信機能が終了したときに0%=> 100%にするだけです
送信機能中に進行機能を処理するアイデアはありますか? 委任することは可能ですか?