`

对于关闭IE后如何清空session的解决方法

阅读更多

    之前在我的“简单实现用户单例登录需求”一文中http://nicyea.iteye.com/blog/716312,简单的描述了对于用户点击IE浏览器关闭按钮后,session在一定时间内未清除,导致用户单例登录无法再次重新登录的问题。

    我搜集了网上的一些资料,主要问题是要解决如何捕获到“IE关闭”的动作。如果可以捕获到“IE关闭”的动作,在关闭时调用后台执行session的清除,那么之前提到的问题也就可以解决了。

    现将总结如下:

    由于系统页面存在“框架”和“非框架”的不同,针对于这两种情况分别要不同的代码区捕获。

    1、“框架”的系统页面:

<script language="javaScript">
function removeline(){
 
if(event.clientX<0&&event.clientY<0){
    // alert("进入了removeline方法,捕捉有效!");
    document.write('<iframe width="100" height="100" src="loginOff.html"></iframe><OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0></OBJECT>');
       document.all.WebBrowser.ExecWB(45,1);
 }
}
</script>

 

    然后在页面的Frameset标签中调用onUnload="removeline();"即可;

 

     之前的代码并未对Alt+F4的关闭做捕获,所以如果要做捕获,请将

   

 

 

 

     2、“非框架”的系统页面

  

<script language="javascript"> 
      
      function window.onunload(){ 
          if((window.screenLeft>=10000 && window.screenTop>=10000)||event.altKey) 
          { 
           // alert("识别到IE关闭,添加自己的代码实现服务器端session清除功能!");    
           } 
      } 
     
</script>

    以上代码只需要在{}中添加自己想要做的动作代码就OK。我们这里所说的清除session实际上都是调用后台实现的服务器端session的清除。

    注意:看到有些朋友发现一些“非框架”页面使用这种方法带来的问题:假如用户打开了多个窗口(系统会不止只有一个窗口页面),如果关闭其中任意一个,那么其他打开的窗口也就取不到服务器端的session了。这一点在使用中需要注意。

    在我的系统中,系统页面只会有一个,所以也就未对发现的问题做特殊的处理。

 

 

 

分享到:
评论

相关推荐

    深入理解PHP中的Session和Cookie

    `,这将清空`$_SESSION`数组,但保留Session ID。若要完全结束会话,应使用`session_destroy()`或通过设置Cookie中的Session ID为无效值,以断开页面间的会话联系。 总的来说,Cookie适合存储非敏感的小量数据,如...

    彻底杜绝PHP的session cookie错误

    解决这类问题的方法有: 1. **修改PHP配置**:在`php.ini`中设置`output_buffering`为`on`,这样可以确保所有输出在发送之前被缓冲。 2. **使用`.htaccess`**:如果不能修改`php.ini`,可以在`.htaccess`文件中设置...

    KODExplorer 芒果云-资源管理器

    - 解决更改排序方式后 ——对应右键菜单不同步问题。 - 优化右键更改列表状态,同步保存配置到服务端。 - 文件浏览器打开(a点击新窗口跳转,a不支持click,用子元素冒泡来实现点击) - 优化配置文件存储方案。直接由...

    Cookie 小记

    Session的数据存储在服务器端,因此服务器可以通过Session.Clear()方法直接清空Session内容。而Cookie则不同,它存储在用户的本地机器上,服务器无法直接删除。如果想要删除某个Cookie,通常需要通过设置一个过期...

    2021-2022计算机二级等级考试试题及答案No.12258.docx

    5. **ResultSet接口**:在Java中,ResultSet接口用于处理SQL查询结果,其方法包括next()用于移动到下一行,close()用于关闭结果集,而back()和forward()不是ResultSet的标准方法。 6. **Web应用程序中的数据共享**...

    html5中的Web Storage

    对于不支持的浏览器,可以通过兼容性处理实现类似功能,例如利用IE7及以下版本的UserData。 5. 操作方法: - setItem:将数据存储到指定的键(key)下。 - getItem:根据键获取存储的数据。 - removeItem:删除...

    localStorage,sessionStorage的使用

    sessionStorage同样提供了一种存储数据的方法,但是它的特性是会话控制和短期保存。会话控制类似于服务器端的session概念,指的是数据只在当前浏览器的会话中有效。具体来说,一旦窗口、标签页或浏览器被关闭,存储...

    前端面试经典题目合集

    - 每个特定的域名下最多只能有20个Cookie(对于IE6及更早版本)。随着浏览器版本的更新,此限制有所放宽,例如IE7及以后版本可以支持50个Cookie,而Chrome和Safari则没有明确的数量限制。 - Cookie 的最大大小通常...

    cookie,localStorage,sessionStorage区别与应用

    浏览器关闭,数据清空 存在内存中,除非自己删除 浏览器关闭,数据清空 存储信息 文本类型 字符串类型数据 同左 属性 是document属性 是window属性 同左 作用范围 无法跨域 同一浏览器不同页面可以共享数据 ...

    网管教程 从入门到精通软件篇.txt

     bootcfg 命令启动配置和故障恢复(对于大多数计算机,即 boot.ini 文件)。  含有下列参数的 bootcfg 命令仅在使用故障恢复控制台时才可用。可在命令提示符下使用带有不同参数的 bootcfg 命令。  用法:  ...

    xp优化简单使用小技巧

    对于使用Windows XP操作系统的用户来说,提高系统的稳定性和运行效率是非常重要的。本文将详细介绍一系列针对Windows XP系统的优化技巧,帮助用户提升系统的整体性能。 #### 二、XP系统优化技巧详解 ##### 1. 提升...

    Visual C# 2008程序设计经典案例设计与实现

    案例13 计算机的注销、关闭和重新启动 案例14 动态获取计算机系统基本信息 本章小结 第8章 Visual C#2008与文件 案例1 动态创建文件并输入文件内容 案例2 动态打开和保存文件 案例3 动态删除文件及清空回收站 ...

    C# 源码 C#2008经典案例

    案例13 计算机的注销、关闭和重新启动 案例14 动态获取计算机系统基本信息 本章小结 第8章 VisualC#2008与文件 案例1 动态创建文件并输入文件内容 案例2 动态打开和保存文件 案例3 动态删除文件及清空回收站 案例4...

    C#设计经典案例设计与实现

    案例13 计算机的注销、关闭和重新启动 案例14 动态获取计算机系统基本信息 本章小结 第8章 VisualC#2008与文件 案例1 动态创建文件并输入文件内容 案例2 动态打开和保存文件 案例3 动态删除文件及清空回收站 案例4...

    Visual+C#+2008程序设计经典案例设计与实现.rar

    案例13 计算机的注销、关闭和重新启动 案例14 动态获取计算机系统基本信息 本章小结 第8章 VisualC#2008与文件 案例1 动态创建文件并输入文件内容 案例2 动态打开和保存文件 案例3 动态删除文件及清空回收站 案例4...

    jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法

    - 数据在页面重载后仍然保留,但在窗口关闭后消失。 **jQuery操作sessionStorage**: - **设置数据**:`sessionStorage.setItem("mycolor", "456")` 或 `sessionStorage.mycolor = '456'` - **获取数据**:`...

    C#编程经验技巧宝典

    2 &lt;br&gt;0003 设置程序代码行序号 3 &lt;br&gt;0004 开发环境全屏显示 3 &lt;br&gt;0005 设置窗口的自动隐藏功能 3 &lt;br&gt;0006 根据需要创建所需解决方案 4 &lt;br&gt;0007 如何使用“验证的目标架构”功能 4 ...

Global site tag (gtag.js) - Google Analytics