jQuery$.ajax&;PHP电子邮件进度指示器

jQuery$.ajax&;PHP电子邮件进度指示器,php,jquery,ajax,progress,indicator,Php,Jquery,Ajax,Progress,Indicator,我正在为我的一个客户开发一个定制的电子邮件系统,作为我为客户构建的CMS的附加组件。我使用jQuery Ajax将所有信息发送到一个PHP文件,该文件格式化电子邮件,将查询发送到MySQL以从数据库获取所有电子邮件地址,然后使用mail()发送电子邮件。这需要一些时间,我希望jQueryAjax在每次PHP脚本发送电子邮件时都显示一个进度条。我搜索了一些类似于success的东西:function()通过JSON从PHP脚本接收数据,允许jquery更新电子邮件的进度 有人对此有什么建议吗?最好

我正在为我的一个客户开发一个定制的电子邮件系统,作为我为客户构建的CMS的附加组件。我使用jQuery Ajax将所有信息发送到一个PHP文件,该文件格式化电子邮件,将查询发送到MySQL以从数据库获取所有电子邮件地址,然后使用mail()发送电子邮件。这需要一些时间,我希望jQueryAjax在每次PHP脚本发送电子邮件时都显示一个进度条。我搜索了一些类似于success的东西: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);
      }
    });

});

您需要将其包装在
setInterval()
函数中。您可以搜索AJAX轮询。但是这里的想法是,您不能在同一个PHP脚本运行时定期从它发送信息,在脚本完成后,
成功
回调只会触发一次。

您可以使用xhr对象并将事件侦听器附加到进度事件


为了使这项工作正常进行,我需要将xhr.addEventListener(“progress”…)行更改为xhr.upload.addEventListener(“progress”,…)——否则,这是一个有用的建议。
$.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;
    }
})