用户登录系统就可以在右下角弹出自己收到的消息提示框
请问各位大哥这个在前端如何实现比较好,性能优先
我的思路是:1.前端通过ajax技术隔一段时间请求一下后台,查看当前登录人是否有消息,如果有,则显示隐藏的消息框
            2.当客户点击之后,消息状态改变,消息框消失,然后客户在“我的消息”中可以看到以前收到的消息问题:这样的话,客户端不停刷新,请求消息状态,服务器是不是顶不住,如果客户很多,消息也很多的话,这样是不是就有问题了?请教各位有什么好的方案,望不吝赐教,谢谢!

解决方案 »

  1.   

    ajax + setTimeout 
    我这样做过,不过是企业内部的软件,如果是网站,不知道行不行,不过压力的话,可以根据具体的情况去设置setTimeout的时间
      

  2.   

    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>