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

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

       该问题分为两种情况,一、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. Navicat For MySQL--外键建立与cannot add foreign key constraint分析

    hrm_job.png 参考资料: https://blog.csdn.net/ytm15732625529/article/details/53729155 https://www.cnblogs. ...

  2. python 2

    1. 格式化输出 %s 可以代替str %d 可以代替int %f  可以代替浮点数( float ) 格式: Name = input('你的名字:') Age = int(input('你的年龄: ...

  3. s21day11 python笔记

    s21day11 python笔记 一.函数小高级 函数名可以当作变量来使用 #示例一: def func(): print(123) func_list = [func, func, func] # ...

  4. Coprime Sequence (HDU 6025)前缀和与后缀和的应用

    题意:给出一串数列,这串数列的gcd为1,要求取出一个数使取出后的数列gcd最大. 题解:可以通过对数列进行预处理,求出从下标为1开始的数对于前面的数的gcd(数组从下标0开始),称为前缀gcd,再以 ...

  5. SG函数 2019- 杭师范校赛

    #include<bits/stdc++.h> using namespace std; ; int sg[maxn]; int f[maxn]; int s[maxn]; void ma ...

  6. python------Socket网络编程(二)粘包问题

    一.socket网络编程 粘包:服务端两次发送指令在一起,它会把两次发送内容合在一起发送,称为粘包,从而出现错误. 解决方法:(比较low的方法) 有些需要实时更新的,用sleep有延迟,不能这样解决 ...

  7. html走马灯效果

    实现跑马灯的方法很多,其中最简单的是采用一句Html代码来实现,我们在需要出现跑马灯效果的地方插入“<marquee>滚动的文字</marquee>”语句,它的效果如下所示: ...

  8. cordova打开文件系统插件的使用: cordova-plugin-file-opener2

    1. 添加插件:cordova plugin add cordova-plugin-file-opener2 2. 调用方法: var target="/sdcard/Download/io ...

  9. Laravel 5.5处理 Emoji 表情不顯示問題

    服务器环境:PHP7 + MySQL5.6 + Laravel 5.5 項目有個玩樂日誌功能,添加玩樂日誌有富文本輸入,富文本輸入的內容在emoji表情之後被截斷了,沒保存到數據表,排查是對應字段字符 ...

  10. php利用array_search与array_column实现二维数组查找

    利用array_search与array_column实现二维数组查找,不用自己写个循环,减少工作量. <?php $userdb = array( 0 => array( 'uid' = ...