日期:2014-05-19  浏览次数:20691 次

js刷新页面是如何保存变量,禁止使用cookie
需求描述:
现在页面上有个消息弹出框,用户登录成功后显示弹出框,同时开始计时每隔5分钟弹出一次,提交表单或手动刷新页面时但是定时器不能刷新,定时器时间延续刷新前的时间继续追加。直到5分钟时消息弹出层。以此类推……


本需求急!!希望各位同仁给个意见和方案!必要是出示相关代码!!!感激不尽。【q:348224249】

------解决方案--------------------
问题的关键应该是定时器时间保存在哪里好。。。
------解决方案--------------------
如果不是用Cookie,就意味着要依赖服务器端来记录最后一次弹出的时间;
那么就意味着每次弹出消息时,要同步访问下服务器,刷新这个弹出时间,当然可以考虑记录在Session中;
每次刷新页面时,要取回Session中所记录的“最后弹出时间”,然后再按5分钟进行增减计算;
最后还需要考虑到浏览器端时间跟服务器端时间不一致,因此只能以某边的时间为准。


不过总的来说,这种方式增大了服务器的负担,不太值得。
------解决方案--------------------
探讨
本来初衷是考虑到客户端cookie的负担才另取方案的,现在的关键就在于弹出时间和弹出层的隐藏或显示状态存放的位置;放在服务端Session也不行的话
请问还有别方面的技术可以实现吗?刷新页面可以保留部分值。

------解决方案--------------------
相当于用ActiveX另外独立开辟存储区,甚至可以保存在注册表中。

因为ActiveX本身就是个客户端程序,你想操作本地磁盘啥的都是可以的。

我觉得ActiveX肯定会被否掉的。


另外不知道你们的运行环境,如果能用HTML5的话(主要是浏览器版本限制问题),可以有额外存储区。
------解决方案--------------------
不可以,你怎么能主动找到互联网上的某个浏览器呢?

Web应用很难做到:“推”。。。HTML5倒是支持直接借助长连接。

当然你也可以自己设法用长连接来推,但其实对服务器性能损耗更大,因为你会持续浪费线程:
http://blog.csdn.net/ldh911/article/details/7268879
------解决方案--------------------
保存数据库把!SessionID其实也是cookie,只是数据是内存或者是其他方式, 既然不能用cookie那sessionid也没发存了!