最近的项目

测试中,一个同事机器装的是IE8,当打开2个IE8窗口并以2个不同用户身份分别登录后,之前登录的用户页面会在第二个用户登录以后刷新成第二个用户信息页面。但是在我的本机(IE6)是好的,并未发现类似问题。

   我查了整个项目中session设置的地方,并未发现问题。最后分析是session被浏览器共享了,于是网上查了IE8和IE7的区别:

   IE7中,同一个窗口(IE 进程)共享一个session。
 
   IE8中,所有打开的IE窗口(IE 进程)共享一个session。

 
   这个问题的关键是,cookie在不同的IE进程间是否共享,有些COOKIE是完全共享的,有的作用域只能局限于单个进程。因为cookie中保存着你的sessionid它被服务器用来决定是否应该生成的新的session。
 
  Session默认情况下是以cookie内存储的sessionId作为识别标志,而cookie在浏览器之间独立的。
 
  
所以如果是同一个浏览器不管开多少个窗口,都只有一个Session。

要想使IE8的窗口运行在不同的Session下,有以下三种解决办法:

方法1:新会话
在已有的IE8窗口中,按下Alt键就会出现菜单栏,点击“文件”菜单,然后点击“新会话”:

new-session-ie8

new-session-ie8

方法2:使用-nomerge参数
在启动IE的时候,使用“运行”命令: iexplore.exe –nomerge

run-unique-session-ie8

run-unique-session-ie8

注意:-nomerge参数仅对IE8有效,而且仅对新窗口有效,对于新选项卡无效。

方法3:修改IE快捷方式
修改IE8快捷方式的启动命令,加入-nomerge参数:

ie8-nomerge

ie8-nomerge