PHP邮件功能花费太多时间导致页面加载时间增加,

时间:2014-01-15 07:42:01

标签: php

在ajax通话期间发送电子邮件需要花费大量时间。 是否可以在后台发送电子邮件并立即向用户返回HTTP响应。

3 个答案:

答案 0 :(得分:0)

这可能更像是一个服务器问题。这取决于你如何配置PHP。

使用本地SMTP服务器可能会很不习惯,该服务器会将电子邮件假脱机,直到它到达目的地。如果您在多个服务器上使用相同的代码,Swiftmailer可能会帮助您从脚本而不是php.ini中配置此代码

答案 1 :(得分:0)

如果你正在使用AJAX,它已经在后台工作了。 AJAX是异步的,因此它会发送数据并继续执行其他操作。然后,当服务器报告请求状态更改时,您的AJAX可以做出相应的反应。

如果您尝试向用户确认电子邮件是否已发送,您可以在AJAX通话后立即执行此操作。这样,代码就会将请求发送到服务器,然后在之后立即显示确认。

如果您要确认电子邮件已发送,您必须等到它已被发送。在实际存在响应之前,您无法显示服务器响应。除非你做错了(我们无法在没有看到你的代码的情况下确定),AJAX应该在它到达时立即处理响应。因此,加速此过程的唯一方法是实现更高效/更快的邮件系统。

答案 2 :(得分:0)

考虑使用:

php_execfork

即使这个问题也可以帮助您:PHP fork process - getting child output in parent

所以你的电子邮件功能可以驻留在某些php文件中。这个php文件应该使用forkexec执行。