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

时间:2013-11-01 19:11:06

标签: php jquery ajax progress indicator

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

});

2 个答案:

答案 0 :(得分:2)

您可以使用xhr对象并将事件侦听器附加到 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;
    }
})

答案 1 :(得分:0)

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