一度に1つの電子メールを送信して、一括して電子メールをjQuery/Ajaxページに送信するミドルウェア(PHPタイプ)ページを変換しようとしています。これは呼び出し元のajax関数によって呼び出されます。私は、jsonレスポンス(例:data.status = "finished")までajax呼び出しを同期的に繰り返す必要があります。各呼び出しはdata.percentage(パーセント完了)を返して、単純なプログレスバーを段階的に更新します。これと同様に、放送をキャンセルするための「停止」ボタンを追加したいと思います。呼び出しページは、何回呼び出しを行う必要があるか分かりません。ミドルウェアは、次の電子メールを生成し、SMTPホストに直接話し、その電子メールを送信済みとしてマークし、それがどのくらい離れているかを調べることで、完了したパーセンテージを返すことができます。AJAX呼び出しを繰り返します。JSON応答にプロセス完了が表示されるまで
私はこれにいくつかのバリエーションを見ましたが、ほとんどの解決策は、manuがどのようにajax呼び出しをループするかを知っているようです。
すべてのコードスニペットが分かります。ここにループや停止コードのないコードがあります。
jQuery("#sendButton").click(function() {
var ezineid = jQuery("#ezineid").val() ;
var percentage = 0 ;
var status = "" ;
jQuery.ajax({ url: '/cms/emailsend.lasso',
type: 'POST',
dataType: 'json',
async: false,
data: {
ezineid: ezineid
},
success: function(data) {
// have the html to display now
percentage = data.percentage ;
status = data.status ;
// update the progress bar
// data.status = finished?
}
});
});
このコードを書いて仕事をすることができない場合は、適切な場所に来ています。質問にコード(または関連する部分)を追加するだけで、それがなければ助けにならないからです。 [ask]を見てください。 –