长时间未操作的实现

1. 要求

登录后10分钟内客户无操作,弹框提示客户;
20分钟无操作,强制退出,不能再继续使用功能。
10分钟到20分钟之间,客户选择继续使用,重置时间,重新从0计时。

2. 实现

var handleTimeCount;
function listener(){
//tipTime定义提示时间,可放到redis或者数据库中,使用时再获取。或者登陆时就保存到参数表中,使用时获取。这里设置为10分钟
 var tipTime = 10;
 //exitTime 退出时间
 var exitTime = 20;
 //这个变量保存客户无操作的时间,单位秒
 var timeTemp = 0;
 //每隔1s判断一次
 window.setInterval(function(){
 //这个变量保存客户无操作时间,移动鼠标或者点击键盘会自动清0,过一秒加1
  handleTimeCount = handleTimeCount+1;
  //过一秒加一
  timeTemp = timeTemp+1;
  //如果用户无操作时间达到10分钟
  if(handleTimeCount == tipTime*60){
   timeTemp = handleTimeCount;
   $.openWindow({
        tranCode : "Confirm",
        windowClass : "Confirm",
        param : {
         message :"您已长时间未操作,是否继续使用?",//提示信息
         winType : "confirm"
        },
        //点击确定,继续使用
      yesFun:function(){
    	  //如果此时已经超过20分钟,不能用handleTimeCount,因为移动鼠标会清0
    	 if(timeTemp >= exitTime*60){
     		 //触发登出的控制
		 // 清理session,sessionData = "";
        	 //window.location.href="http://localhost:8088";
    	 }else{//大于10分种小于20分钟
    	 //这个时判断session值是否还有,即客户不做交易的时间(客户做交易时会更改数据库中的不做交易的时间为0,达到设置的时间session清空,不能再做交易)
	     	 if(CONFIG_SESSION_ID){
	      	 	handleTimeCount = 0;//如果session还在,客户就能正常使用,计时清0
	     	 }else{
	       		sessionData = "";//session标志标识没有,清空session
               	 //这里写客户重新登录的方法
     	 }
    },
    noFun:function(){//客户点击否,不使用
     		//这里写客户重新登录的方法
    }
    } );
  }
 },1000);
}

判断客户无操作时间的方法:

$(document).mousemove(function(e){
handleTimeCount = 0;
}); 
$(document).keydown(function(e){
 handleTimeCount = 0;
});  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值