关于这个需求我想不管是大项目还是小项目都是必要的,网上问的人也比较多,同样我也遇到了这样的需求,查阅了不少这方面的资料。然后通过实践,总结了一下。
鼠 标点击X窗口关闭IE的同时清空session,最基本的就是处理用户重复登陆需要用到,我想这个的关键在于如何捕捉到关闭IE这个动作,之后再根据自身 的需要使用session.invalidate()或者session.removeAttribute( "xxx ")都是水到渠成的事情。
下面我们就重点看看如何捕捉这个动作:
首先现在的系统的页面结构一般分为2种,框架的和非框架的。
框架的:
<script language="javaScript">
function removeline(){
if(event.clientX<0&&event.clientY<0){
alert("我进入了removeline方法啦,说明捕捉有效!");
document.write('<iframe width="100" height="100" src="XXX.jsp"></iframe><OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0id=WebBrowser width=0></OBJECT>');
document.all.WebBrowser.ExecWB(45,1);
}
}
</script>
然后只需要在frameset里面调用该方法即可。
<frameset 。。。。。。。。。。。。。onUnload="removeline();">
</frameset>
几 点注意之处:if(event.clientX<0&&event.clientY<0)这个条件没有对alt+F4关闭 IE进行捕捉,如果想添加,要改成if((event.clientX<0&&event.clientY<0& &) ||event.altKey)
Removeline方法中的XXX.JSP是你写具体如何清楚session的页面。
非框架的:
对于非框架的的处理和框架的会有所不同,实现方法如下;
<script language="javascript">
function window.onunload(){
if((window.screenLeft>=10000 && window.screenTop>=10000)||event.altKey)
{
alert("识别到关闭IE啦!!!");
}
}
</script>
By The Way:最后我想说的是,建议系统使用框架的页面结构,这样做的好处很多了,单就权限而言也有不少有利之处。
首 先,为什么要清空SESSION呢?清空session肯定是为了根据session来控制什么,实现某种判断,我们所谓的关闭IE时清空 session,是指清空服务器端的session,众所周知,对于客户端的session,是随着你关闭IE的同时就自动的销毁的。因此,这样以来,如 果使用非框架结构,就会带来一些问题,很简单的一个例子就是你打开了系统的3个页面,然后你X掉其中的一个页面,那么自然触发了清空session的方 法,所以这时服务器的对应session应该被清除,而你仍然开着的页面怎么办呢。。。。。。。。。。
框架结构的好处就是始终只运行一个页面,避免了上述问题的产生,当然使用框架的好处还有很多,在这里就不一一赘述了
在下水平有限,如有不妥的地方还请大家不吝指教!
分享到:
相关推荐
`,这将清空`$_SESSION`数组,但保留Session ID。若要完全结束会话,应使用`session_destroy()`或通过设置Cookie中的Session ID为无效值,以断开页面间的会话联系。 总的来说,Cookie适合存储非敏感的小量数据,如...
`ob_end_flush()`则会发送整个缓冲区并关闭缓冲,而`ob_end_clean()`则是清空缓冲区且不发送内容。`ob_get_contents()`用于获取当前缓冲区的内容,便于处理脚本的输出。 在实际开发中,为避免这类问题,应遵循以下...
Session的数据存储在服务器端,因此服务器可以通过Session.Clear()方法直接清空Session内容。而Cookie则不同,它存储在用户的本地机器上,服务器无法直接删除。如果想要删除某个Cookie,通常需要通过设置一个过期...
1. sessionStorage:它主要用于在同一个浏览器会话(session)中存储数据。这意味着,只要用户没有关闭浏览器或标签页,数据就会一直存在。一旦会话结束,比如用户关闭了浏览器窗口,sessionStorage中存储的所有数据...
会话控制类似于服务器端的session概念,指的是数据只在当前浏览器的会话中有效。具体来说,一旦窗口、标签页或浏览器被关闭,存储在sessionStorage中的数据就会被自动清除。 sessionStorage的操作函数与...
浏览器关闭,数据清空 存在内存中,除非自己删除 浏览器关闭,数据清空 存储信息 文本类型 字符串类型数据 同左 属性 是document属性 是window属性 同左 作用范围 无法跨域 同一浏览器不同页面可以共享数据 ...
10. **IE浏览器收藏夹**:IE浏览器的收藏夹用于保存常访问的网站地址,但不能自动记录最近访问过的站点。 11. **Java Swing组件**:在Java Swing中,JTextField组件用于接收用户的输入信息。 12. **Java文本框滚动...
[关于兼容性] 建议使用chrome firefox ie9+ 体验更完整。ie8以下基本上不做兼容处理。chrome支持文件夹拖拽上传。 [文件打开] office文件在线预览功能,服务器必须在公网(外部能访问该服务器) [忘记密码] 修改data...
除非主动删除数据,否则数据将永久保留在本地,即使关闭浏览器或重启计算机也不会丢失。 #### WebStorage与Cookie的区别 1. **存储容量:** - **WebStorage** 的主要优势在于其更大的存储容量。相比之下,Cookie ...
- 通过调整注册表路径`[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\SecondLevelDataCache]`中的相应数值,可以优化CPU缓存设置。具体数值可以根据不同的CPU类型进行调整...
案例13 计算机的注销、关闭和重新启动 案例14 动态获取计算机系统基本信息 本章小结 第8章 Visual C#2008与文件 案例1 动态创建文件并输入文件内容 案例2 动态打开和保存文件 案例3 动态删除文件及清空回收站 ...
案例13 计算机的注销、关闭和重新启动 案例14 动态获取计算机系统基本信息 本章小结 第8章 VisualC#2008与文件 案例1 动态创建文件并输入文件内容 案例2 动态打开和保存文件 案例3 动态删除文件及清空回收站 案例4...
案例13 计算机的注销、关闭和重新启动 案例14 动态获取计算机系统基本信息 本章小结 第8章 VisualC#2008与文件 案例1 动态创建文件并输入文件内容 案例2 动态打开和保存文件 案例3 动态删除文件及清空回收站 案例4...
案例13 计算机的注销、关闭和重新启动 案例14 动态获取计算机系统基本信息 本章小结 第8章 VisualC#2008与文件 案例1 动态创建文件并输入文件内容 案例2 动态打开和保存文件 案例3 动态删除文件及清空回收站 案例4...
**总结**: - Cookie适合存储较小量、需在每次请求时传递给服务器的数据,如用户认证信息。 - localStorage适用于存储大量、长期需要保留的同源数据,如用户设置。 - sessionStorage则用于临时存储同一窗口内的数据...
小编的确一直都想把这方面的命令做个总结,这次辛苦老范给我们整理了这份实用的秘笈。 Bootcfg bootcfg 命令启动配置和故障恢复(对于大多数计算机,即 boot.ini 文件)。 含有下列参数的 bootcfg 命令仅在...
112 <br>0188 如何在ASP.NET中显示当前IE浏览器头信息 113 <br>5.6 其他应用技巧 114 <br>0189 如何判断年份是否为闰年 114 <br>0190 如何根据年份判断十二生肖 114 <br>0191 如何根据IP...