设计经典ASP应用程序以动态检测会话到期

时间:2009-04-04 18:36:50

标签: session asp-classic

我有一个依赖会话的经典ASP应用程序;如果用户使屏幕空闲然后运行表单帖子或其他操作,我想知道会话是否已过期。

目前我正在检查每个页面中的会话以查看它是否已超时,但是是否有更好的,动态的JavaScripty方法可以执行银行所做的事情,并通过通知超时会话并重定向登录?

1 个答案:

答案 0 :(得分:2)

在页面的onload事件期间,启动计时器,然后在N秒后重定向页面。

  • 对于计时器,请使用window.setTimeout功能。
  • 对于重定向,请设置window.location
  • 的值

可重复使用示例:

<head>
<script type="text/javascript">
<!--
 function redirect(url) {
   window.location = url;
 }
 function beginSessionTimer() {
   // 30000ms = 30s
   window.setTimeout(redirect, 30000, 
                     "http://www.yoursite.com/login.asp?session=clear");
 }
//-->
</script>
</head>
<body onload='beginSessionTimer();'>
</body>

具有内联函数的快速脏例子:

<body onload='window.setTimeout(function(){
window.location="http://www.yoursite.com/login.asp?session=clear";}, 
30000);'>

请注意,如果您的页面执行任何AJAX调用,这会使会话保持活动状态,那么您将需要使用clearTimeout方法重置计时器(与对setTimeout的新调用相结合)。有关clearTimeout的详细信息,请click here获取Mozilla的优秀文档。)