邮件发送异常导致AJAX返回处理缓慢

php中文网
发布: 2016-06-23 13:56:46
原创
1043人浏览过

有个问题想请教下:
我在JS端使用ajax,执行的是异步方式,
当判断xmlhttp.readyState == 4时,会处理服务端返回的一些数据,并作提示。

问题是:
最近发现在老是要等很久才能捕获到服务端返回的数据;
经过追查发现是PHP在处理一个MAIL函数时等待很久。MAIL函数只是处理一个很简单的邮件发送。
之前也没有这样的问题。可能是服务器哪里出现了异常。

深入探索应该是在等待该MAIL函数的执行导致了服务端返回的等待。

请教下是否有办法解决?该MAIL函数一定要在AJAX调用后台的时候执行。

钉钉 AI 助理
钉钉 AI 助理

钉钉AI助理汇集了钉钉AI产品能力,帮助企业迈入智能新时代。

钉钉 AI 助理 21
查看详情 钉钉 AI 助理

回复讨论(解决方案)

php不支持多线程,可以将mail函数操作独立出来,或者将mail函数要做的事情,放到一个临时表中,定时去发。

这个跟多线程无关吧?只是这两天服务器的MAIL功能好像在返回时有点延迟-(实际上已经有寄信出去),采用的是LINUX的MAIL功能-才会有这个问题。

你的问题很奇怪!
既然你需要等待 mail 的返回,那又怎么能绕过去呢?

如果你要等待mail函数返回结果给你,那就不能绕过它了,我的理解有误了

你的问题很奇怪!
既然你需要等待 mail 的返回,那又怎么能绕过去呢?



我不需要等待MAIL的返回啊

我程序里有一句MAIL(),我删除就能正常快速响应;查了手册,MAIL函数会返回TRUE/FALSE。
所以我才在猜是不是因为等待MAIL的返回导致速度这么慢。

怎么说呢,我说的等待返回,不是我自己要等待返回的!

按照AJAX的异步方式,只有服务器完全相应返回才会返回xmlhttp.responseText对吧。

我在猜是不是因为执行了mail()函数后,客户端一直在等待这个函数返回TRUE或者OR才会变得这么慢的。

问题应该也是这样,我去除了该语句,其他都能正常执行,xmlhttp.responseText也很快就能捕获到值。

所以有没有办法在不去除MAIL语句的情况下,正常快速的响应呢?

mail和发邮件有关,首先检查一下邮件服务器配置(找专业人士)。
或者你优化下代码,将你要发的邮件放到一个临时表,linux加crontab 里面定时来用mail函数发。

既然你不需要等待 mail 的返回,那就按 nowphp 收的思路做
当然也就不能及时知道邮件是否发出了

应该是邮件服务器的问题。

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号