首页 新闻 搜索 专区 学院

如何实现页面实时输出当前操作--(没什么分了,不好意思)

0
悬赏园豆:5 [已关闭问题]

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

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

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

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

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

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

yangjun的主页 yangjun | 初学一级 | 园豆:17
提问于:2009-07-21 14:25
< >
分享
其他回答(1)
0

一次发送多邮箱,您应该在数据库添加一张表.专门存放即将要发送的邮箱.

然后写一个定时发送的邮箱的功能来发送这张表的邮件地址.

参考下面定时删除文件的功能.改为定时发送邮件.

http://www.cnblogs.com/insus/articles/1431986.html

Insus.NET | 园豆:932 (小虾三级) | 2009-07-21 14:47
0

可以的,基本原理是这样:

首先你的发送会占用网页所在的线程,从而只有等到全部发送完毕后才会返回响应,所以第一点就是要另开辟一个线程异步执行发送操作。

在异步发送过程中,向数据库或其他位置写入进度消息。

写一个WebService用于返回消息。

在客户端中使用定时器定期访问该WebService获取最新的消息,呈现给用户。

整个实现过程还是比较麻烦的,涉及知识点较多。

 

如果将WebService&客户端Ajax部分换作Asp.Net提供的UpdatePanel+Timer方案,难度会被简化很多。

 

如果不采用Ajax,也有个权宜之:

第一步还是启用独立线程异步发送邮件

也还是要在发送时将消息写入数据库或其他位置

然后立即将客户端页面转向到消息页

消息页读取消息并显示,并且该页面设置定时刷新,这样也能解决问题,就是用户体验不是很好。

斯克迪亚 | 园豆:4124 (老鸟四级) | 2009-07-21 17:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册