AJAX的致命问题:如何通过AJAX获取SESSION残留时间,并且要避免永久不失效问题,

thefirstwind 2009-05-27 06:32:30
问题是这样的
系统框架Seasar + Extjs + Tomcat

问题是想在要通过AJAX来获取当前会话的SESSION残留时间,但是还要避免永久刷新不失效的问题。

我找了一些文章,说的很含糊。

另外 Eric Pascarello 写的一篇关于解决该问题的文章(Ajax Session Management Timer),我也在看,本身不会.net,他的代码也看不懂,那英文看的我也很郁闷。

所以请教有经验的朋友来解答。
...全文
114 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
thefirstwind 2009-05-29
  • 打赏
  • 举报
回复
无满意结帖,对不起各位了
thefirstwind 2009-05-29
  • 打赏
  • 举报
回复
我总结一下,基本上很清晰了。

http://www.pascarello.com/AjaxSessionTimer.aspx

Eric Pascarello的程序我看完了,配置.net环境花了1个小时,看程序10分钟没到,真tmd的不爽。
那个程序包里面那么多文件,其实只有.js有用,其他大部分都是配置文件,无非就是设置window.setTimeOut(也就是在客户端计时),之前我以为会有别的方法,也没有意外的惊喜。


这样的话存在很大的问题。

因为我现在这个系统是在用户登陆之后,由servlet.httpSession创建一个jsessionId,直到用户推出以后,才作废。
如果session超时,会提示用户重新登陆,并且所有打开的窗口都会被强迫关掉。只剩下1个用于登陆的窗口。
登陆之后,由登陆窗口直接转移到菜单窗口,菜单窗口可以打开多个子窗口,我监视了一下log,由同一个菜单窗口生成的子窗口的jsessionId是相同的。
如果不刷新窗口的话,子窗口的js端session计时器(setTimeOut)就无法同步,所以就会出现一下的情况。
菜单窗口貌似session超时,弹出警报,而子窗口貌似还没有超时。

解决方法中还要再加上一个条件就是:1个窗口,就1个。
licip 2009-05-28
  • 打赏
  • 举报
回复
我认为楼上的是对的。
xiaojing7 2009-05-28
  • 打赏
  • 举报
回复
避免永久不失效没有绝对的,因为没有这么属性,只能设置过期时间为百年以后。例如9999年99月99
前端只能通过服务器获取session。然后再通过httpxml来获取
thefirstwind 2009-05-28
  • 打赏
  • 举报
回复
所以还是要失效的。
thefirstwind 2009-05-28
  • 打赏
  • 举报
回复
避免永久失效
thefirstwind 2009-05-28
  • 打赏
  • 举报
回复
对不起,可能我表达上有问题。

session还是要失效的,
如果定期的用AJAX取SESSION,那SESSION就不会失效,我是要避免这种情况发生。

52,792

社区成员

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

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