其他页面中获得一个循环中当前进度的好办法

WBOY
发布: 2016-06-23 14:26:06
原创
903 人浏览过

可能题目说的有点笼统,需求是这样的。
有一个群发邮件功能。有时候可能群发给几百个客户,所以要循环几百次。同时还有一个页面要实时看到本次的发送进度,动态显示发到第几封了。每次发送邮件时带的进程ID是不同的。
目前显示页面的处理逻辑是通过ajax定时查询邮件表中属于这个进程ID的总数是多少,然后返回中页面显示。这样感觉效率太低了。一遍发一遍查。请问有没有其他好的办法?
我试过在循环中将当前循环次数写入Session中,然后显示页面直接读Session值,但每次都是显示最终的结果。
关于php的线程我还不是很懂。请指教。


回复讨论(解决方案)

有用memchache或者别的缓存吗,循环脚本中写缓存;显示页面ajax请求后台读缓存

没有用memchche或其他缓存,我准备试试html5的localStorage不知道可以不。

普通方式的话,没有好的办法。也不建议楼主搞得复杂。建议楼主仍然使用ajax+数据库获取进度的方式,虽然没有那么高的实时性,但是足够达到工程需求了。发送邮件可以采用多线程,这样效率高很多。
要不就不要使用多线程了,使用更简单的吧。可以http://localhost/xxx.php启动多个php文件进行发送。

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!