jsp平台系统如何实现站内发消息?

AppleBoy2008 2010-01-09 10:47:28
用户登录系统就可以在右下角弹出自己收到的消息提示框
请问各位大哥这个在前端如何实现比较好,性能优先
我的思路是:1.前端通过ajax技术隔一段时间请求一下后台,查看当前登录人是否有消息,如果有,则显示隐藏的消息框
2.当客户点击之后,消息状态改变,消息框消失,然后客户在“我的消息”中可以看到以前收到的消息

问题:这样的话,客户端不停刷新,请求消息状态,服务器是不是顶不住,如果客户很多,消息也很多的话,这样是不是就有问题了?

请教各位有什么好的方案,望不吝赐教,谢谢!
...全文
247 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Da嗒_Sunny 2011-06-18
  • 打赏
  • 举报
回复
七楼的话 是最正确的 不了解的可以去了解一下服务器的推送技术 就是服务器主动链接客户端 这样客户端就不用时刻刷新了
AppleBoy2008 2010-01-10
  • 打赏
  • 举报
回复
可以说下具体实现步骤吗?谢谢
SambaGao 2010-01-10
  • 打赏
  • 举报
回复
javascript
<SCRIPT language=Javascript>
document.writeln("<div id=\"msn\" style=\"BORDER-RIGHT:#455690 1px solid; BORDER-TOP:#a6b4cf 1px solid; Z-INDEX:99999; LEFT:0px; BORDER-LEFT:#a6b4cf 1px solid; WIDTH:180px; BORDER-BOTTOM:#455690 1px solid; POSITION:absolute; TOP:0px; HEIGHT:116px; BACKGROUND-COLOR:#c9d3f3\">");
document.writeln("<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"BORDER-TOP:#ffffff 1px solid; BORDER-LEFT:#ffffff 1px solid\" bgcolor=\"#cfdef4\">");
document.writeln("<tr><td height=\"24\" width=\"26\" style=\"FONT-SIZE:12px;COLOR:#0f2c8c\" valign=\"middle\"><\/td>");
document.writeln("<td style=\"FONT-WEIGHT:normal;FONT-SIZE:9pt;COLOR:#1f336b;PADDING-TOP:4px\" valign=\"middle\" width=\"100%\">保龙仓工会会员系统:<\/td>");
document.writeln("<td style=\"PADDING-TOP:2px\" valign=\"middle\" width=\"15\" align=\"right\"><a href=\"javascript:closeDiv()\">关闭<\/a><\/td>");
document.writeln("<\/tr><tr><td colspan=\"3\" height=\"90\" style=\"PADDING-RIGHT:1px;PADDING-BOTTOM:1px\">");
document.writeln("<div style=\"BORDER-RIGHT: #b9c9ef 1px solid; PADDING-RIGHT: 13px; BORDER-TOP: #728eb8 1px solid; PADDING-LEFT: 13px; FONT-SIZE: 9pt; PADDING-BOTTOM: 13px; BORDER-LEFT: #728eb8 1px solid; WIDTH: 100%; COLOR: #1f336b; PADDING-TOP: 18px; BORDER-BOTTOM: #b9c9ef 1px solid; HEIGHT: 100%\"><a href=\"../hygl/hy_info.jsp\">>>>你现在的消息有<%=_n%></a><br><br><\/div><\/div><\/tr><\/table><\/div>");
//http:
msn.style.top=document.body.clientHeight-174;
msn.style.left=document.body.clientWidth-225;
moveR();
function moveR() {
msn.style.top=document.body.scrollTop+document.body.clientHeight-116;
msn.style.left=document.body.scrollLeft+document.body.clientWidth-180;

}
function closeDiv(){
msn.style.visibility='hidden';
}
<%
}
%>
</SCRIPT>
yiyanghua 2010-01-10
  • 打赏
  • 举报
回复
用服务器推技术
ljl0284 2010-01-10
  • 打赏
  • 举报
回复
即时消息,如果数据量大,我觉得用数据库来存,因为既然登陆了,那就是会员,如果想要查看过去的消息呢,如果只是缓存起来的话对服务器的压力还是挺大的。
如果不用数据库来,那就用一个服务器来转发消息,不过只有双方在线,一方发的消息,另一方才能收到,新浪有一个脚本,和浏览网页的人对话,类似
  • 打赏
  • 举报
回复
我也正在关注这个事呢。等候大侠的解答。
crazylaa 2010-01-10
  • 打赏
  • 举报
回复
就用你的思路实现好了。间隔长一点。
用户量大只能存数据库。
推技术不了解,怎么推?7楼说明白。不要拿个术语来唬人
小栗色兔子 2010-01-10
  • 打赏
  • 举报
回复
学习
AppleBoy2008 2010-01-10
  • 打赏
  • 举报
回复
7楼的能说下你的思想吗,谢谢
jishu_vip 2010-01-09
  • 打赏
  • 举报
回复
新的消息一律缓存起来
AppleBoy2008 2010-01-09
  • 打赏
  • 举报
回复
我这个是外网可以访问的,在线人数也很大,所以性能很重要
我知道这样可以实现,但是服务器压力是不是就很大了
有没有用其他方式做过的,支招哦
andrewsway 2010-01-09
  • 打赏
  • 举报
回复
ajax + setTimeout


我这样做过,不过是企业内部的软件,如果是网站,不知道行不行,

不过压力的话,可以根据具体的情况去设置setTimeout的时间

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧