0

我正在尝试向大量联系人发送电子邮件,并且我希望能够测量发送的程度,即显示一个加载栏,显示发送电子邮件时的发送百分比。下面是html

<div id="loading" style="height:20px;"></div>

然后是Javascript代码

$.ajax({
    type: "POST",
    url: "engine/send-mail.php",
    data: "action=sendmail",
    success: function (Databack) {
        $('#loading').css('width', Databack);
    }
});

注意php服务器端代码

$query = "SELECT email FROM clientsdata";
while ($data = mysql_fetch_array($query)) {
    extract($data);
    mail_user($email, $subject, $message);
    $no++;
    echo $no."px;";
}

更像是一个进度条,但它不起作用。

4

5 回答 5

0

您可以使用许多 PHP 类来更新网页中的可视进度条。

例如:http ://www.m4d3l-network.com/developpement/php/simple-progress-bar/

Zend Framezork 嵌入了这个功能顺便说一句。

于 2013-02-07T14:08:30.697 回答
0

看看这篇关于在数据进入时使用 jQuery 显示 ajax 的帖子。

于 2013-02-07T14:21:12.073 回答
0

您可以查询例如。40 个电子邮件地址,而不是全部。然后多次调用您的电子邮件脚本,每次调用 ajax 时您都会发送接下来的 40 封电子邮件……因此您可以非常轻松地设置进度条。也许在您的数据库中创建一个包含所有要发送的电子邮件的电子邮件队列,并且每个 ajax 调用都会从队列中删除已发送的电子邮件。

于 2013-02-07T14:22:04.677 回答
0

您将无法这样做,因为您的 php 只会在脚本结束时响应。

您可以做的是将一个 ID 链接到数据库的每封电子邮件,这样之后您就可以在 javascript 中循环遍历 UID 数组来链接 ajax 调用。

于 2013-02-07T14:06:35.903 回答
-1

您需要一个异步请求。有几种方法可以做到这一点,例如长轮询或 Web Sockets。我不确定周围是否有任何框架,但这个帖子似乎是相关的。

于 2013-02-07T14:07:38.837 回答