有人知道如何发送带有附件的邮件并在 JavaScript (jQuery) 中显示进度条的好例子吗?
问问题
208 次
1 回答
0
您可能不得不猜测花费的时间,并据此更新进度条。
鉴于 PHP 没有线程,我建议有一个用于交付的数据库队列,并从主站点(或通过 cron)触发一个外部 PHP 进程,该进程在侧面处理交付,在数据库上标记当前状态每次交付:NOT_PROCESSED、IN_PROGRESS、CONNECTING、CONNECTED、SENDING_DATA、ACCEPTED、FAILURE_X。您可以通过 Ajax 在数据库中查询每次交付的状态。
如果 PHPMailer 在内部使用标准的 PHP mail() 函数,它在您的机器中使用中继 SMTP 服务器,那么您将无法获得关于状态的那么多信息(如果您自己创建了套接字,您将拥有这些信息),您只能拥有三个主要状态NOT_PROCESSED、IN_PROGRESS、FAILURE_X。
是否可以在向用户提供投递反馈的同时使用 PHP 异步发送邮件?
否则,也许您可以在每个小步骤之后更新进度条。像这样随意的东西:
- 设置邮件收件人
- 更新进度条 25%
- 从地址设置邮件
- 更新进度条 50%
- 设置邮件标题
- 更新进度条 75%
- 发邮件
- 将进度条更新为 100%
然而,这确实是低效的。最终的结果可能是用户看到进度条在前三个(25%、50%、75%)之间跳跃得非常快,然后被卡在 75% 上以获得额外的第二或第二然后完成..
于 2011-11-11T20:54:08.990 回答