如何实现页面实时输出当前操作

我现在做了一个邮件群发系统,在群发时,由于用户过多,发送时间比较久,页面感觉是停止响应了一样,我想做一个这样东西:就像安装软件一样,发送一个邮件,就在在页面输出类似:

邮件成功发送至:yangjun@cnblogs.com

邮件成功发送至:yangjun@gmail.com

........................

可以采用AJAX的方式来做么?如果可以,应该怎么做?

或者听说过一个叫做异步的东东,但是没做过。恳请园友指点一二,谢谢了。


Helenr
浏览 504回答 2
2回答

拉风的咖菲猫

可以的,基本原理是这样:首先你的发送会占用网页所在的线程,从而只有等到全部发送完毕后才会返回响应,所以第一点就是要另开辟一个线程异步执行发送操作。在异步发送过程中,向数据库或其他位置写入进度消息。写一个WebService用于返回消息。在客户端中使用定时器定期访问该WebService获取最新的消息,呈现给用户。整个实现过程还是比较麻烦的,涉及知识点较多。 如果将WebService&客户端Ajax部分换作Asp.Net提供的UpdatePanel+Timer方案,难度会被简化很多。 如果不采用Ajax,也有个权宜之:第一步还是启用独立线程异步发送邮件也还是要在发送时将消息写入数据库或其他位置然后立即将客户端页面转向到消息页消息页读取消息并显示,并且该页面设置定时刷新,这样也能解决问题,就是用户体验不是很好。
打开App,查看更多内容
随时随地看视频慕课网APP