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

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

       该问题分为两种情况,一、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. 全文检索的Demo

    用到lucene版本为6.3.0版本,利用的分词器为IKAnalyzer分词器,该分词对中文有较好的支持.关于支持lucene的6.xx以上的IkAnalyzer分词jar包下载地址:https:// ...

  2. 入门项目 A5-2 interface-shop 第三方接口2

    from db import db_handler # 从db数据包下面调用db处理模块,以使用其内部的名称空间与函数功能 # 添加购物车接口 def add_shopping_cart_interf ...

  3. hdu4612 Warm up 缩点+树的直径

    题意抽象后为:给定一个无向图 问添加一条边的情况下最少能有多少个桥. 桥的定义:删除该边后原图变为多个连通块. 数据规模:点数N(2<=N<=200000),边数M(1<=M< ...

  4. Python全栈之路----函数进阶----装饰器

    Python之路,Day4 - Python基础4 (new版) 装饰器 user_status = False #用户登录后改为True def login(func): #传入想调用的函数名 de ...

  5. 成功的拆开了SELECT里JOIN个SELECT是啥

    SELECT * FROM table JOIN table ON a=b ----------------------- JOIN (SELECT* FROM table JOIN table ON ...

  6. win10企业版2016长期服务版本激活

    右键左下角Windows开始图标  ——>  单击  命令提示符(管理员)A 粘贴如下代码到dos窗口: slmgr /ipk DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ slm ...

  7. 使用samba或NFS实现文件共享

  8. C++ Primer Plus (Stephen Prata 著)

    第1章 预备知识 (已看) 第2章 开始学习C++ (已看) 第3章 处理数据 (已看) 第4章 复合类型 (已看) 第5章 循环和关系表达式 (已看) 第6章 分支语句和逻辑运算符 (已看) 第7章 ...

  9. Java中的接口和抽象类

    接口和抽象类是Java设计中最基本的概念,它们都不能实例化对象,都可以实现多态,也都能用来创建匿名内部类.但实际使用上还有很多的不同. 两者的语法定义不同,对应的设计抽象关系也不同,接口主要是对行为的 ...

  10. xpython在Windos下的安装及简单的文本打开、保存

    前几天写自动化部署脚本,用的是paramiko和shell相结合,paramiko可是实现ssh登录,文件及文件夹的上传下载,这些功能,然后一直想自己写个东西出来,于是就想把这些功能我把他放到图形化界 ...