JS判断Session过期

客户希望如果没有操作,在30分钟后session过期,并且自动进行注销的操作。

显然服务器没有提供这方面的支持,所以只能从客户端下功夫。

实现的方式很简单,在js中记录进入页面的时间,通常用户的操作都会导致页面的刷新和url的变动,所以在公共的包含文件中加上如下的代码,1. 记录进入页面的时间。 2. 设置一个定时器,检查这个时间也现在时间的差值是否大于session过期的时间,也就是30分钟。

JS代码一:

var globalLastSessionTime = new Date();    

calcSessionTime=function(){   

    var now = new Date();   

    var past = now - globalLastSessionTime;//ms   

    if(past>1800000){   

    logout();         

 }  
}

 

不过现在系统中存在一部分dwr的ajax方法和操作。这些ajax操作室不会刷新页面的,那也就没办法更新到globalLastSessionTime了,所以必须在每次dwr操作之前对这个时间进行更新,幸好dwr都提供了方法,不然每个dwr方法都要改,那就惨了。

dwr.engine.setPreHook(functionName);

setPreHook可以再每次dwr远程调用之前运行指定的函数。

所以,再加上如下的代码就可以了:

JS代码二:

setSessionTime=function(){   

  globalLastSessionTime=new Date();   

  //alert(globalLastSessionTime);   

  }   

DWREngine.setPreHook(setSessionTime); 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值