今天开始讲新浪博客搬到博客园。

       在工作中遇到的小问题,感觉有点意思,就记录下来吧!

       该问题分为两种情况,一、Web页面长时间无操作后,在对其进行操作,比如点击“首页”、“设置”等带有超链接字段,此时可直接设置session的有效时间来解决。session有效时间一般都是设置登录控制器(MVC) 中的Controller中,如:
         session.setMaxInactive(300);//设置session有效时间为300秒。
当超过5分钟都没有对其进行操作再点击其中的某个超链接时将跳转到登录界面,登录完成后会自动跳转到原来的页面。
 
        第二种情况,Web页面长时间无操作,再对其进行操作,但点击的地方为非超链接的地方,如页面中的空白处,此时session不起作用,由于需要对其进行监控是否在有效时间内,如在有效时间内点击则重新记录开始时间, 这种情况下如果通过和服务器交互来进行判断则必然会影响系统的性能,得不偿失,不足取。
       可供选择的一种方案时,在前台Web页面中加入鼠标监听事件,不需要服务端配合,直接由前台页面完成。该前台页面需要是Header.jsp,是被其他页面所引用的,或是在js中,该js是被系统其它jsp页面所引用的。这两种方式均比在每一个系统的jsp页面中加入监听事件具有可操作性。完整代码如下:
Header.jsp
    
javaScript:
 
       var timeStart = 0;//开始时间,
       var timeOut = 300;//有效时间,设置为5分钟
       
       $(document).read(function()){
         .....
         if(timeStart  == 0){
                timeStart = (new Date()).getTime();//得到初始成功登录系统的时间
          }
         ......
        }
 
        document.onmousedown = function(event){//监听鼠标事件
             var timeNow = (new Date()).getTime();
             var timeOp = timeNow - timeStart - timeOut*1000;
             if(timeOp > 0){
                   window.location.reload(true);//重新加载该页面(跳转到登录页面,验权通过后自动调至该页面)
             }else{
                   timeStart = timeNow;//未超时,则重新计时
             }
         }
 
备注:$(document).read() 是在DOM结构载入完后执行;
        window.onload 是在所有文件都加载完后执行;

Web页面长时间无操作后再获取焦点时转到登录界面的更多相关文章

  1. web页面长时间未操作自动退出登录

    var lastTime = new Date().getTime(); var currentTime = new Date().getTime(); * * ; //设置超时时间: 10分 $(f ...

  2. WPF:鼠标长时间无操作,窗口隐藏

    //设置鼠标长时间无操作计时器 private System.Timers.Timer MouseTimerTick = new System.Timers.Timer(10000); private ...

  3. 自定义android程序一段时间无操作后的功能

    项目中遇见一个这样的需求,就是当软件在一定时间没有操作时候需要弹出广告页面,当点击广告页面时又进行软件操作,也就是广告要在软件打开并且处于未操作状态才会出来. 方法一:用handler+onTouch ...

  4. ssh一段时间无操作后自动断开连接(假死)问题

    平时使用ssh远程服务器的时候(注:远程虚拟机一般不会有这个问题),一段时间没有操作,ssh连接就会处于假死状态,以至于需要重新进行ssh连接,不管你用的什么远程工具都会出现这个问题,那么通过心跳检测 ...

  5. IIS Web API 长时间不连接后第一次访问非常缓慢

    搭建在 IIS 上的 Web API 若长时间不访问,会出现第一次访问耗时较长的现象,这与其调用应用程序池的 Idle Time-out(minutes) 即闲置超时设置有关.默认值为20,修改为0即 ...

  6. vue项目前端限制页面长时间未操作超时退出到登录页

    之前项目超时判断是后台根据token判断的,这样判断需要请求接口才能得到返回结果,这样就出现页面没有接口请求时还可以点击,有接口请求时才会退出 现在需要做到的效果是:页面超过30分钟未操作时,无论点击 ...

  7. ASP.NET 工作流:支持长时间运行操作的 Web 应用程序

    ASP.NET 工作流 支持长时间运行操作的 Web 应用程序 Michael Kennedy   代码下载位置:MSDN 代码库 在线浏览代码 本文将介绍以下内容: 独立于进程的工作流 同步和异步活 ...

  8. ajax 多个setInterval进行ajax请求的页面长时间打开会出现页面卡死问题

     多个setInterval进行ajax请求的页面长时间打开会出现页面卡死问题 浏览器的渲染(UI)线程和js线程是互斥的,在执行js耗时操作时,页面渲染会被阻塞掉.当我们执行异步ajax的时候没有问 ...

  9. SSH连接服务器时,长时间不操作就会断开的解决方案

    最近在配置服务器相关内容时候,不同的事情导致长时间不操作,页面就断开了连接,不能操作,只能关闭窗口,最后通过以下命令解决. SSH连接linux时,长时间不操作就断开的解决方案: 1.修改/etc/s ...

随机推荐

  1. 剑指Offer 28. 数组中出现次数超过一半的数字 (数组)

    题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...

  2. 判断手机是安卓还是ios

    let ORZ = function() { if(!(this instanceof ORZ)) { return new ORZ; }}ORZ.prototype = { // 判断用户手机是An ...

  3. [转]keepalived简介

    https://www.jianshu.com/p/b050d8861fc1 contents: 什么是Keepalived VRRP协议简介 Keepalived原理 Keepalived配置文件详 ...

  4. Python全栈之路----函数进阶----迭代器

    我们已经知道,可以直接作用于 for 循环的数据类型有以下几种: 一类是集合数据类型,如 list , tuple , dict , set ,str 等: 一类是 generator ,包括生成器和 ...

  5. 多设备同时进行monkey抗压测试

    adb工具操作monkey抗压测试. 首先得安装adb工具,且配置好环境配置.推荐链接: 安装方法:https://blog.csdn.net/L_201607/article/details/781 ...

  6. Opensource Licenses

    协议列表https://www.gnu.org/licenses/license-list.htmlhttps://opensource.org/licenses/alphabetical 协议选择参 ...

  7. PythonStudy——字典的操作 Dictionary operation

    dic = {'a': 1, 'b': 2} print(dic) # 增: 字典名[key] = 值 => key已存在就是修改值,不存在就是新增值 dic['c'] = 3 print(di ...

  8. Entity Framework教程翻译 ---- 系列教程

    Entity Framework教程(第二版) (翻译)Entity Framework技巧系列之十四 - Tip 56 (翻译)Entity Framework技巧系列之十三 - Tip 51 - ...

  9. 支付宝 生活号 获取 userId 和 生活号支付

    第一:申请生活号. 第二:激活开发者 模式 ,并且上创 自己的 公钥  ( 支付宝 demo 里面有 ) 第三: 配置 回调地址 ( 用于前端 调用获取 auth_code 的时候 填写的回调地址,支 ...

  10. Day 14 三元运算符,列表推导式,内置函数

    三目运算符 ```python# 三目(元)运算符:就是 if...else...语法糖# 前提:简化if...else...结构,且两个分支有且只有一条语句# 注:三元运算符的结果不一定要与条件直接 ...