为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Helenr 2018-11-01 05:07:12
我现在做了一个邮件群发系统,在群发时,由于用户过多,发送时间比较久,页面感觉是停止响应了一样,我想做一个这样东西:就像安装软件一样,发送一个邮件,就在在页面输出类似:邮件成功发送至:yangjun@cnblogs.com邮件成功发送至:yangjun@gmail.com........................可以采用AJAX的方式来做么?如果可以,应该怎么做?或者听说过一个叫做异步的东东,但是没做过。恳请园友指点一二,谢谢了。
查看完整描述

2 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

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

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

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

写一个WebService用于返回消息。

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

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

 

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

 

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

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

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

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

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


查看完整回答
反对 回复 2018-11-02
  • 2 回答
  • 0 关注
  • 495 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信