耗时很长的服务器端事件中让客户端得到中间过程信息的更合理的解决方案
我认为《耗时很长的服务器端事件中让客户端得到中间过程信息的合理解决方案》一文中的解决方案不合理,属于技术的误用,满篇的ajax这个词很容易给读者造成误导 。
原需求:
B/S结构的系统里,用户点一个按钮系统开始发送上千封邮件,要求把发送信息(发送成功数,失败数,剩余数量...)动态实时的反馈给客户.
原文的技术误用之处:
(1)ajax,pageload 这些ui层的东东渗透到逻辑层里去了
(2)thread的职责太多
并不是网页上的多线程不好搞,而是Web开发搞久了,基本的OO设计能力下降了,或者根本就忽略OO设计了,眼中只有页面。
以原文这个例子而言,你不把它当成Web开发,一切就变得很简单了。
我的解决方案:
首先,得有一个类管理每条信息。
public abstract class MessageHolder { public DateTime SendTime { get; set; } public String ReceiverMail { get { return Receiver.Mail; } } public String ErrorMessage { get; set; } public Int32 SendCount { get; set; } public Boolean SendExpired { get { return SendCount > 5; } } public Boolean SendOk { get; private set; } public Guid Id { get; private set; } public String SendResult { get { if (SendOk) return "发送成功"; else { if (SendExpired) return "发送失败"; else return "等待发送"; } } } } public class MailMessageHolder : MessageHolder { public String Title { get; private set; } public String Text { get; private set; } }
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索string
, 解决方案
, return
, get
, public
, 信息
很长
tcp客户端和服务器端、udp服务器端和客户端、java服务器端和客户端、服务器端和客户端、服务器端向客户端推送,以便于您获取更多的相关知识。