2009-09-24 47 views
0

我想实现现有的PHP应用程序内的自动超时。超时退出与重置循环

我的目标是让系统在自动超时设置发生之前15秒通知用户,让他们有机会“重置”超时计时器。

我使用jQueryUI位作为所有这些的一部分。

This chart may help describe what I'm trying to do.

我有一个适当的工作计时器和通知。我正在寻找的是 获得提示以进行自动注销 - >取消自动注销 - >重启计时器 - >获取提示进行自动注销。 (这是我的图表中的红色部分。)

对于我来说,有没有什么好的现有选择?

这里是我到目前为止,但我觉得我坚持......

window.setTimeout(function() { 
    $('#timeOutNoticeMsg').css('color', '#000000'); 
    $("#timeOutDialog").dialog({ 
     bgiframe: true, 
     modal: true, 
     resizable: false, 
     draggable: false, 
     buttons: { 
      "Cancel Logout": function() { 
       $(this).dialog("close"); 
       window.clearTimeout(timeoutHandle); 
      } 
     }, 
    }); 
}, 103000); 

var timeoutHandle = window.setTimeout(function() { 
    window.location.href = 'logout.php?w=1'; 
}, 115000); 
+0

即使它们在页面上处于活动状态,这是否不会将用户注销? –

+0

是的,除非他们点击弹出的图表中的“取消注销”按钮...这样做会清除location.href位... 我对单页上的活动不感兴趣就像我对页面翻页感兴趣一样。 – Jason

回答

0

我将包括“取消注销”功能的布尔变量:

 "Cancel Logout": function() { 
      $(this).dialog("close"); 
      window.clearTimeout(timeoutHandle); 
      logMeOut = false; 
     } 

和然后使退出功能依赖于该变量:

var timeoutHandle = window.setTimeout(function(logMeOut) { 
if(logMeOut == true) 
{  
    window.location.href = 'logout.php?w=1'; 
}, 115000); 

请注意,我不是一个jQuery专家,我请勿担保以上伪码。找出你自己的语法。

+0

稍微调整它的工作....感谢您的帮助 – Jason