0

我正在为我的一个客户开发一个自定义电子邮件系统,作为我为我的客户构建的 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);
      }
    });

});
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 回答