本文转载于:
http://haoi77.iteye.com/blog/197101
在Web系统中有时会有监听超时的需要。当用户一定的时间内不在当前Web系统进行任何操作时,系统需要做出反应。例如弹出提示对话框,或是将用户退出登录状态。
由于用户在界面的操作往往不会与后台进行交互,因此在后台采用SessionListner的监 听方式无法满足该需求。这里建议使用javascript来实现此项功能。单页面与框架页面的超时监听分开介绍:
1、单页面超时监听
超时监听的javascript程序如下:
var maxTime = 300; //最大计时值为300S
var timeOutValue = maxTime;
/**
* 计时监听程序,在页面初始化时调起即可
*
*/
function timeListener()
{
timeOutValue = timeOutValue - 1;
if(timeOutValue<=0)
{
timeOutValue = maxTime;
alert("尊敬的用户,您已经"+ maxTime/60+" 分钟没有操作...");
}
setTimeout("timeListener()",1000); //每隔一秒监听一次
}
对于单页面的超时监听,在页面初始化时调用timeListener就能搞定( <body onload="timeListener()"> )。
2、框架页面超时监听
但是对于框架页面,如何处理?例如需要对下面一个简单的框架页面进行监听:
<frameset rows="80,*" cols="*" frameborder="no" border="0" framespacing="0">
<frame src="top.htm" name="topFrame" scrolling="No" noresize="noresize" id="topFrame" />
<frameset cols="80,*" frameborder="no" border="0" framespacing="0">
<frame src="left.htm" name="leftFrame" scrolling="No" noresize="noresize" id="leftFrame" />
<frame src="main.htm" name="mainFrame" id="mainFrame" />
</frameset>
</frameset>
该框架有3个frame,当用户在任意一个框架区域发生操作都能够被监听到。如何实现?
这里推荐借助JQuery库的来实现,JQuery详细的使用方法请登录http://jquery.com/
具体实现如下:
在top.htm中编写"计时监听"程序和"监听框架各个区域动作"程序:
<script type="text/javascript" src="../js/jquery.js"></script> //导入jQuery库文件
<script type="text/javascript">
var maxTime = 300; //最大计时值为300S
var timeOutValue = maxTime;
function timeListener()
{
timeOutValue = timeOutValue - 1;
if(timeOutValue<=0)
{
timeOutValue = maxTime;
alert("尊敬的用户,您已经"+ maxTime/60 + " 分钟没有操作...");
}
setTimeout("timeListener()",1000); //每隔一秒监听一次
}
/**
*页面初始化时加载计时监听程序
*/
$(document).ready(function()
{
timeListener();
});
/**
*监听topFrame区域的各种动作,一旦有动作发生,就重新计时
/
$(window.parent.topFrame).blur(function()
{
timeOutValue = maxTime;
}).click(function()
{
timeOutValue = maxTime;
}).dblclick(function()
{
timeOutValue = maxTime;
}).focus(function()
{
timeOutValue = maxTime;
}).keydown(function()
{
timeOutValue = maxTime;
}).keypress(function()
{
timeOutValue = maxTime;
}).mousedown(function()
{
timeOutValue = maxTime;
}).mousemove(function()
{
timeOutValue = maxTime;
}).mouseover(function()
{
timeOutValue = maxTime;
}).scroll(function()
{
timeOutValue = maxTime;
});
/**
*监听leftFrame区域的各种动作,一旦有动作发生,就重新计时
/
$(window.parent.leftFrame).blur(function()
{
timeOutValue = maxTime;
}).click(function()
{
timeOutValue = maxTime;
}).dblclick(function()
{
timeOutValue = maxTime;
}).focus(function()
{
timeOutValue = maxTime;
}).keydown(function()
{
timeOutValue = maxTime;
}).keypress(function()
{
timeOutValue = maxTime;
}).mousedown(function()
{
timeOutValue = maxTime;
}).mousemove(function()
{
timeOutValue = maxTime;
}).mouseover(function()
{
timeOutValue = maxTime;
}).scroll(function()
{
timeOutValue = maxTime;
});
/**
*监听mainFrame区域的各种动作,一旦有动作发生,就重新计时
/
$(window.parent.mainFrame).blur(function()
{
timeOutValue = maxTime;
}).click(function()
{
timeOutValue = maxTime;
}).dblclick(function()
{
timeOutValue = maxTime;
}).focus(function()
{
timeOutValue = maxTime;
}).keydown(function()
{
timeOutValue = maxTime;
}).keypress(function()
{
timeOutValue = maxTime;
}).mousedown(function()
{
timeOutValue = maxTime;
}).mousemove(function()
{
timeOutValue = maxTime;
}).mouseover(function()
{
timeOutValue = maxTime;
}).scroll(function()
{
timeOutValue = maxTime;
});
</script>
分享到:
相关推荐
5、与传统协议方法不同,比如Modbus设备,需要PC端主动去连接设备,而这套框架只需要监听端口,服务器就能自动去轮询终端所有设备。 6、API接口具备动态增加轮询读取数据的任务,并且具备定时读取任务启停、任务创建...
WEB.XML标准配置注解: <!--Servlet的映射,用来说明客户端IE中输入什么样的地址字符串对应到哪个Servlet的别名--> ...--定义了Web应用程序中会话的超时时限--> <session-timeout>10 </session-config>
type元素 21 9 提供安全性 23 9.1 指定验证的方法 23 9.2 限制对Web资源的访问 25 9.3 分配角色名 26 10 控制会话超时 27 11 Web应用的文档化 27 12 关联文件与MIME类型 28 13 定位TLD 29...
使用Go语言开发的轻量级定时任务集中调度和管理系统 Web界面管理定时任务 crontab时间表达式, 精确到秒 任务执行失败可重试 任务执行超时, 强制结束 任务依赖配置, A任务完成后再执行B任务 账户权限控制 任务类型 ...
这里模仿jquery的处理方式实现webix的ajax请求session超时跳转。 具体的做法: 1、查看webix.js源码发现webix.ajax只有请求前的监听函数 “onBeforeAjax”, 要做到获取返回状态跳转登录页面必须要有个返回的监听...
工作线程阻塞在条件变量的等待中,新任务到来后,某一工作线程会被唤醒,执行具体的IO操作和计算任务,如果需要继续监听,会添加到epoll中 锁的使用有两处: 第一处是任务队列的添加和取操作,都需要加锁,并配合...
实时监听方法,统计运行时长 web展示方法调用链路,瓶颈可视化追踪 追踪系统异常,精确定位到方法 接口超时邮件通知,无需实时查看 线上热更新:无需重启更新代码 线程管理:线程实时统计与状态查看 使用简单...
实时监听方法,统计运行时长; web展示方法调用链路,瓶颈可视化追踪; 追踪系统异常,精确定位到方法;接口超时邮件通知,无需实时查看;线上热更新:无需重启更新代码;线程管理:线程实时统计与状态查看;使用...
简单的流程实现,可以运行。开发环境是idea,用的工作流flowable6.2.1
技术栈: node.js && puppeteer技术交流 QQ 群: 552643038备注: demo 里面通过 goto.url 的方式来触发拦截,实际上可以通过模拟自动点点点的方式来触发拦截,支持监听正常 Response 做校验断言,也支持拦截超时,中断...
定时器 11.1 socket选项SO_RCVTIMEO和SO_SNDTIMEO 11.2 SIGALRM信号 11.2.1 基于升序链表的定时器 11.2.2 处理非活动连接 11.3 IO复用系统调用的超时参数 11.4 高性能定时器 11.4.1 时间轮 11.4.2 时间堆 第...
表示客户端和service之间的连接) port 指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求 minProcessors 服务器启动时创建的处理请求的线程数 maxProcessors 最大可以创建的处理请求的线程数 ...
网络通信安全管理员培训 WEB安全加固 操 作 指 南 邮电职业技术学院培训中心 二零一二年五月 1、Windows server 2003系统加固 4 1.1采集系统信息 4 1.2账号 5 1.2.1优化账号 5 1.2.2检测隐藏 6 1.2.3更改默认管理员...
4.5 事务超时设置 201 4.6 本章小结 203 第5章 JNDI和远程方法调用 204 5.1 JNDI的概念 205 5.1.1 命名服务 205 5.1.2 目录服务 206 5.1.3 JNDI的优点 206 5.2 JNDI编程入门 207 5.2.1 文件系统的命名服务 207 5.2.2...
指定事件监听类 157 处理错误 157 共享信息 157 使用域对象 157 控制共享资源的并发入口 158 访问数据库 159 初始化Servlet 160 编写Service方法 160 通过request取得信息 161 构造Responses 162 过滤请求及响应 163...
JASChatWeb 网页聊天室 1.0版--群聊+... ServetLogout.java -- 两个监听器,一个负责监听用户session超时,另一个用于服务器关闭时清除用户登陆状态 -----------------------------------------------------------------
用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...
11.8 改变永久性存储系统 461 11.8.1 问题 461 11.8.2 解决方案 461 11.4.3 工作原理 461 11.9 日志 464 11.9.1 问题 464 11.9.2 解决方案 464 11.9.3 工作原理 464 11.10 运行单元和集成测试 466...
11.8 改变永久性存储系统 461 11.8.1 问题 461 11.8.2 解决方案 461 11.4.3 工作原理 461 11.9 日志 464 11.9.1 问题 464 11.9.2 解决方案 464 11.9.3 工作原理 464 11.10 运行单元和集成测试 466...