私は X メールを送信する PHP プロセスを持っています。各メールの送信後、メールが送信されたことを伝えるためにデータベースに行を追加します。
したがって、X メールが Y ( Y = 合計) に送信されたことをユーザーに伝えるためのプログレス バーを作成したくありません。
私はそのような2つのjquery関数を持っています:
function mail_send()
{
var refreshIntervalId;
$('.loading').css('display','block');
$.ajax({
'url': '/an/url/',
'data': {
someParam: param
},
'beforeSend':function()
{
$('#loadingBg').append('<span id="count"></span>');
refreshIntervalId =setInterval(function () {
mail_updateProgress(id);
}, 500);
}
,
'success': function (data,textStatus)
{
(....)
clearInterval(refreshIntervalId);
javascript: console.log(' send finish !!!');
}
});
}
function mail_updateProgress(id) {
javascript: console.log('updatePG');
$.ajax({
'url': '/an/url/',
'data': {
someParam: param
},
'success': function (data) {
var res = $.parseJSON(data);
javascript: console.log(' => data received ' + res.nbSended);
$('#count').html(res.nbSended + '/' + res.total);
}
});
}
$.ajax のキューはありますか? 私は 3 つのことをログに記録しています: 最初: プロセスが updateProgress 関数で入力されたとき 2 番目: updateProgress ajax が成功したとき 3 番目: mail_send() ajax が成功したとき
ログの順序は次のとおりです。
- updatePG => 100回(テストのためにphpコードをスリープさせました)
- 送信完了!!! => 1回
- => データを 11 回受信 => X 回 (メールを 11 回送信)
したがって、私にとっては、ajax 呼び出しのキューがあることを示しています。しかし、どうすればプログレスバーを実行できますか?
編集: phpの設定の問題かもしれませんが、
同じプロセスからのマルチ接続を許可する方法を教えてください。