session丢失问题
2008-11-18 10:31
162 查看
session丢失问题的解决
当采用window.open() 打开新的窗口时,经常会出现session丢失的问题,在使用Frame或者iFrame会使客户端不能写cookie,而Session是基于cookie的,所以使用Frame或者iFrame的页面也就不能保持Session. 使用IE内核的浏览器基本上都会存在这个问题;目前使用的是J2EE处理session,看大家的情况,PHP,ASP 都同样存在这样的问题;不排除与客户段的情况存在关系。但不确定到底什么原因引起的。我觉得可能是:
1。客户端打开窗口等程序引起;
2。Cookie使用4K限制存在的问题;
3。客户端浏览器使用某些插件,或者某些特殊设置(如采用新的进程打开窗口MAXTHON等)导致该问题出现;
4。最近IE7也经常出现该问题;
当然,对于Session机制本身是无可厚非的。但各种客户端的条件是难以控制的;不知道这个问题什么时候才能得到解决; 现在的Web应用,月来越难了。 标准不统一;客户端情况复杂;
一开始分析,可能是页面有缓存的问题。所以先使用语句使页面不再有缓存:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate">
<meta http-equiv="expires" content="0">
但是问题依旧。在网上查询到一种方法,采用window.open()方法的name参数,同样可以保证只弹出一个页面,然后在这个弹出页面进行操作。
关于Window.open的参数小结(参书改编) 先看一个例子:
[javascipt:]window.open("Webpage.asp?",Derek,"height=100,width=100,status=yes,toolbar=yes,
menubar=no,location=no");
此语句打开一个新窗口,页面为webpage.asp,参数为var,名字为Derek,高为100,宽为100,显示状态栏和工具条,不显示菜单和地址。
具体总结的各个属性参数如下:
window = object.open([URL ][, name ][, features ][, replace]]]])
URL:新窗口的URL地址
name:新窗口的名称,可以为空
featurse:属性控制字符串,在此控制窗口的各种属性,属性之间以逗号隔开。
fullscreen= { yes/no/1/0 } 是否全屏,默认no
channelmode= { yes/no/1/0 } 是否显示频道栏,默认no
toolbar= { yes/no/1/0 } 是否显示工具条,默认no
location= { yes/no/1/0 } 是否显示地址栏,默认no
directories = { yes/no/1/0 } 是否显示转向按钮,默认no
status= { yes/no/1/0 } 是否显示窗口状态条,默认no
menubar= { yes/no/1/0 } 是否显示菜单,默认no se
scrollbars= { yes/no/1/0 } 是否显示滚动条,默认yes
resizable= { yes/no/1/0 } 是否窗口可调整大小,默认no
width=number 窗口宽度(像素单位)
height=number 窗口高度(像素单位)
top=number 窗口离屏幕顶部距离(像素单位)
left=number 窗口离屏幕左边距离(像素单位)
其中name参数用来在以后使用的html链接的target属性时引用这个窗口(用来在以后使用的html链接的target属性时引用这个窗口,在弹出页面使用<base target="name">)之外,还可以是以下参数
_blank 表示新开一个窗口,_parent表示父框架窗口,_self表示覆盖该窗口,xxx表示覆盖名字为xxx的窗口(每个窗口都可以给他命名)
当采用window.open() 打开新的窗口时,经常会出现session丢失的问题,在使用Frame或者iFrame会使客户端不能写cookie,而Session是基于cookie的,所以使用Frame或者iFrame的页面也就不能保持Session. 使用IE内核的浏览器基本上都会存在这个问题;目前使用的是J2EE处理session,看大家的情况,PHP,ASP 都同样存在这样的问题;不排除与客户段的情况存在关系。但不确定到底什么原因引起的。我觉得可能是:
1。客户端打开窗口等程序引起;
2。Cookie使用4K限制存在的问题;
3。客户端浏览器使用某些插件,或者某些特殊设置(如采用新的进程打开窗口MAXTHON等)导致该问题出现;
4。最近IE7也经常出现该问题;
当然,对于Session机制本身是无可厚非的。但各种客户端的条件是难以控制的;不知道这个问题什么时候才能得到解决; 现在的Web应用,月来越难了。 标准不统一;客户端情况复杂;
一开始分析,可能是页面有缓存的问题。所以先使用语句使页面不再有缓存:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate">
<meta http-equiv="expires" content="0">
但是问题依旧。在网上查询到一种方法,采用window.open()方法的name参数,同样可以保证只弹出一个页面,然后在这个弹出页面进行操作。
关于Window.open的参数小结(参书改编) 先看一个例子:
[javascipt:]window.open("Webpage.asp?",Derek,"height=100,width=100,status=yes,toolbar=yes,
menubar=no,location=no");
此语句打开一个新窗口,页面为webpage.asp,参数为var,名字为Derek,高为100,宽为100,显示状态栏和工具条,不显示菜单和地址。
具体总结的各个属性参数如下:
window = object.open([URL ][, name ][, features ][, replace]]]])
URL:新窗口的URL地址
name:新窗口的名称,可以为空
featurse:属性控制字符串,在此控制窗口的各种属性,属性之间以逗号隔开。
fullscreen= { yes/no/1/0 } 是否全屏,默认no
channelmode= { yes/no/1/0 } 是否显示频道栏,默认no
toolbar= { yes/no/1/0 } 是否显示工具条,默认no
location= { yes/no/1/0 } 是否显示地址栏,默认no
directories = { yes/no/1/0 } 是否显示转向按钮,默认no
status= { yes/no/1/0 } 是否显示窗口状态条,默认no
menubar= { yes/no/1/0 } 是否显示菜单,默认no se
scrollbars= { yes/no/1/0 } 是否显示滚动条,默认yes
resizable= { yes/no/1/0 } 是否窗口可调整大小,默认no
width=number 窗口宽度(像素单位)
height=number 窗口高度(像素单位)
top=number 窗口离屏幕顶部距离(像素单位)
left=number 窗口离屏幕左边距离(像素单位)
其中name参数用来在以后使用的html链接的target属性时引用这个窗口(用来在以后使用的html链接的target属性时引用这个窗口,在弹出页面使用<base target="name">)之外,还可以是以下参数
_blank 表示新开一个窗口,_parent表示父框架窗口,_self表示覆盖该窗口,xxx表示覆盖名字为xxx的窗口(每个窗口都可以给他命名)
相关文章推荐
- IE中用window.open() 新开页面,有时会丢失Session 的问题。
- jfreechart出现ChartDeleter没有序列化问题导致session信息丢失的解决方法
- Apache JK集群环境session丢失问题
- uploadify,swfupload等flash上传session丢失问题,无法接收到表单
- 关于ASP.NET Session 丢失问题
- aspx在页面跳转(Response.Redirect)时丢失session问题及解决办法
- IE中iframe跨域丢失Session问题
- Yii框架用户登录session丢失问题解决方法
- 解决uploadify上传丢失session问题
- ASP.NET 状态服务 及 session丢失问题解决方案总结
- [导入]关于asp.net Session丢失问题的总结
- 关于asp.net Session丢失问题的总结
- 关于asp.net Session丢失问题的总结
- FileReference URLrequest上传文件的问题:Session丢失
- asp.net Session丢失问题
- ASP.NET状态服务及session丢失问题解决方案总结(转)
- 解决iframe窗体丢失Session时登录窗口显示在子页面的问题
- weblogic访问网页时session丢失的问题
- ASP.NET:关于session超时和丢失问题
- nginx使用proxy_pass反向代理时,session丢失的问题