是否可以在发生超时时重定向到登录页面,而无需等待用户首先点击任何内容?现在,当超时发生时,用户所在的页面仍然显示,但只要用户点击任何内容,它就会进入登录页面。谢谢
您需要在客户端检查会话是否已过期。最简单的方法是在页面加载后使用javascript简单地开始倒计时(只要超时)。到期后,将用户发送到登录页面。或者更好:让用户知道会话已经过期,因为如果你把他送到某个地方,他可能不会太高兴。虽然我的网上银行软件确实做到了这一点,但当然是出于安全原因。
下面是一个非常简单的例子:http://jsfiddle.net/39Sj6/1/
function sessionHasExpired(){
if(confirm("Your session has expired. Do you want to go to the login page")){
window.location = "http://google.com/?q=login";
}
}
var sessionTimeInMilliseconds = 1000*60*5; // here: 5 minutes
setTimeout(sessionHasExpired, sessionTimeInMilliseconds );
(在jsfiddle中,你不会被重定向到谷歌,因为这是jsfiddl禁止的,但原则上它会起作用)
是的,您可以通过Javascript计时器和ajax调用轮询会话状态以检查服务器会话状态,然后重定向到登录页面,或者,您可以将计时器设置为指定的时间限制(20分钟或会话超时),然后重定向至登录页面。