会话超时使用Javascript或jQuery

时间:2012-12-17 10:19:58

标签: javascript jquery-ui session-timeout

会话完成后如何重定向到登录页面?代码应检查用户是否处于空闲状态一段时间,然后执行任何其他客户端事件。如果发现此情况,则应检查会话超时,如果会话完成,则重定向到登录页面。

2 个答案:

答案 0 :(得分:0)

检查网页上的不活动状态就像试图收听大量活动一样。这也意味着如果存在用户交互,则会多次调用函数(事件处理程序)。如果这个处理程序/函数转向某些ajax发送/接收内容,那么它最终可能会使您的用户界面表现不佳。

为什么不缩短会话有效期并自动注销用户?这样,如果用户真正活跃,那么很可能会在该时间范围内请求页面。您还可以设置基于计时器的事件,该事件在被触发时将简单地向服务器发送虚拟请求以刷新会话,作为让服务器知道用户仍处于活动状态但尚未准备好请求另一页面的方式。这将是用户正在编辑长文本或类似内容的情况。

我希望它有所帮助。

答案 1 :(得分:0)

  

5分钟后退出会话

<sctipt>
    var interval;
     $(document).on('mousemove', function () {
         clearInterval(interval);
         var coutdown = 5 * 60, $timer = $('.timer'); // After 6 minutes session expired  (mouse button click code)
         $timer.text(coutdown);
         interval = setInterval(function () {
             $timer.text(--coutdown);

             if (coutdown === 0) {

                 alert("Session expired User successfully logout.");
                 window.location = "UserLogin.aspx";
             }

         }, 1000);
     }).mousemove();



     var interval;
                 $(document).on('keydown', function () {
         clearInterval(interval);
         var coutdown = 7 * 60, $timer = $('.timer'); // After 6 minutes session expired (keyboard button press code)
         $timer.text(coutdown);
         interval = setInterval(function () {
             $timer.text(--coutdown);

             if (coutdown === 0) {

                 alert("Session expired User successfully logout.");
                 window.location = "UserLogin.aspx";
             }

         }, 1000);
     }).mousemove();
<sctipt>

<div class="timer">
     Time of session display on page 
</div>