0

クライアントの 1 人向けに、クライアントに提供するために構築した CMS のアドオンとして、カスタム メール システムを開発しています。jQuery Ajax を使用してすべての情報を PHP ファイルに送信し、メールをフォーマットし、クエリを MySQL に送信してデータベースからすべてのメール アドレスを取得し、mail() を使用してメールを送信します。これには時間がかかります。PHP スクリプトが電子メールを送信するたびに、jQuery ajax に進行状況バーを表示させたいと考えています。成功に似たものを検索しました: function() は、JSON を介して PHP スクリプトからデータを受け取り、jquery が電子メールの進行状況を更新できるようにします。

誰かこれについて提案がありますか?このようなものが望ましいです:

 $.ajax({
      type: "POST",
      url: "example.com",
      data: {"test":"test","tester":"tester"},
      PROGRESS: function(data){
        $("div").html(data);
      },
      success: function(r){
        alert(r);
      }
    });

});
4

2 に答える 2

2

xhr オブジェクトを使用して、進行状況イベントにイベント リスナーをアタッチできます。

$.ajax({
    //...
    xhr: function() {
        var xhr = new window.XMLHttpRequest();
        xhr.addEventListener("progress", function(e) {
            var p = e.loaded / e.total;
            // update your progress bar here..
        });
        return xhr;
    }
})
于 2013-11-01T19:19:52.430 に答える
0

これを関数内にラップする必要がありsetInterval()ます。AJAX Pollingを検索できます。ただし、ここでの考え方は、実行中の同じ PHP スクリプトから定期的に情報を送り返すことはできないということです。successコールバックは、スクリプトの終了後に一度だけトリガーされます。

于 2013-11-01T19:13:51.937 に答える