需求描述:
现在页面上有个消息弹出框,用户登录成功后显示弹出框,同时开始计时每隔5分钟弹出一次,提交表单或手动刷新页面时但是定时器不能刷新,定时器时间延续刷新前的时间继续追加。直到5分钟时消息弹出层。以此类推……
本需求急!!希望各位同仁给个意见和方案!必要是出示相关代码!!!感激不尽。【q:348224249】

解决方案 »

  1.   

    如果不是用Cookie,就意味着要依赖服务器端来记录最后一次弹出的时间;
    那么就意味着每次弹出消息时,要同步访问下服务器,刷新这个弹出时间,当然可以考虑记录在Session中;
    每次刷新页面时,要取回Session中所记录的“最后弹出时间”,然后再按5分钟进行增减计算;
    最后还需要考虑到浏览器端时间跟服务器端时间不一致,因此只能以某边的时间为准。
    不过总的来说,这种方式增大了服务器的负担,不太值得。
      

  2.   

    本来初衷是考虑到客户端cookie的负担才另取方案的,现在的关键就在于弹出时间和弹出层的隐藏或显示状态存放的位置;放在服务端Session也不行的话
    请问还有别方面的技术可以实现吗?刷新页面可以保留部分值。纠结中……
      

  3.   


    基本没有了,客户端保存内容Cookie最轻量级,否则变成你要用ActiveX之类的来存就更麻烦了
      

  4.   

    哎,我也想用cookie保存
    可这老大说现在cookie容量已经很大了
    这个ActiveX怎么用?尽可能的尝试别的方法感激不尽
      

  5.   

    相当于用ActiveX另外独立开辟存储区,甚至可以保存在注册表中。因为ActiveX本身就是个客户端程序,你想操作本地磁盘啥的都是可以的。我觉得ActiveX肯定会被否掉的。
    另外不知道你们的运行环境,如果能用HTML5的话(主要是浏览器版本限制问题),可以有额外存储区。
      

  6.   

    谢谢 @yuan8080
    我们这系统要尽可能的兼容所有客户端浏览器的,HTML5可能就不行了。
    请问 @Mice spring的定时器可以做到这点吗?通过定时器去操作页面的弹出。(因为我对定时器了解不是很彻底)
      

  7.   

    不可以,你怎么能主动找到互联网上的某个浏览器呢?Web应用很难做到:“推”HTML5倒是支持直接借助长连接。当然你也可以自己设法用长连接来推,但其实对服务器性能损耗更大,因为你会持续浪费线程:
    http://blog.csdn.net/ldh911/article/details/7268879
      

  8.   

    保存数据库把!SessionID其实也是cookie,只是数据是内存或者是其他方式, 既然不能用cookie那sessionid也没发存了!
      

  9.   

    谢谢大家,最后还是选择保存cookie了。哎,,,程序员苦。老大一句话 纠结了一个晚上