Seb*_*eth 2 asp.net session-timeout
我有一个隐藏的iframe,只要用户在线,就会不时刷新,以保持ASP.NET会话的正常运行.
但是,我一直在收到用户遇到会话超时的报告,所以现在我对重置会话计时器需要什么感到怀疑.
隐藏的iframe的内容页面(简单的html页面)以一定的间隔刷新自身,这明显小于会话超时.
我的问题是:是否足够(对于会话计时器重置)让页面刷新自己,即使服务器响应HTTP/1.x 304 Not Modified?
它只是GET请求本身告诉Web服务器重置会话计时器吗?
或者我是否需要确保实际获取页面并接收HTTP/1.x 200 OK响应?
要使会话保持活动,您只需向当前会话中的页面发送请求即可.您可以通过iframe或通过ajax执行此操作.
如果您只是刷新IFrame中的页面,响应可能是缓存的 - 因此304.您必须每次都发送一个新的请求 -
var url = "http://domain.com/defibrillator.aspx?" + (new Date()).getTime();
Run Code Online (Sandbox Code Playgroud)
例如
http://domain.com/defibrillator.aspx?1556467987987
http://domain.com/defibrillator.aspx?5448796497878
http://domain.com/defibrillator.aspx?4123165487987
....
Run Code Online (Sandbox Code Playgroud)
或者您可以使用Refresh HTTP标头属性.
如果您正在使用上面提到的codeproject文章,那么尝试使用AJAX而不是iframe对其进行建模 - 它会为您节省几个字节的额外iframe标记.
如果客户端已执行条件GET请求并允许访问,但文档尚未被修改,则服务器应该响应此状态代码.304响应必须不包含消息体,因此总是在头字段之后的第一个空行终止.
这意味着请求尚未到达ASP.NET管道,并且直接由IIS本身提供服务.ASP.NET环境不知道已发出请求.因此,它不会执行会话续订.
| 归档时间: |
|
| 查看次数: |
7370 次 |
| 最近记录: |