2013-01-03 54 views
0

在我的表單中,我有一個在radajaxpanel內部的計時器。該計時器用於每1分鐘自動保存表格。表單過期

現在我的問題是每當自動保存被稱爲它是更新會話超時。但是我需要的是在空閒一小時後顯示通知(請求用戶更新會話,否則我將註銷用戶)並忽略自動保存會話超時更新。

更新:

下面的代碼

<telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server"> 
    <asp:Timer ID="Timer1" runat="server" OnTick="AutoSaveNotificationCallBackUpdate" Interval="60000" /> 

</telerik:RadAjaxPanel> 

的AutoSaveNotificationCallBackUpdate會做回發從而復位我的會話超時。

+0

什麼是您的代碼使用?沒有查看代碼很難幫助你。 – devilkkw

回答

0

您可以保存下面的代碼interval.js

if(window.intervals) 
    ; 
else { 
    function Interval() { 
     var instance=this; 
     var a=[]; 

     Interval.toString=function() { 
      return '[Interval]'; 
     } 

     instance.toString=function() { 
      return '[object Interval]'; 
     } 

     instance.Register=function (x, code, delay) { 
      a[x]=setInterval(code, delay); 
     } 

     instance.Deregister=function (x) { 
      if(x in a) 
       clearInterval(a[x]); 
     } 
    } 

    window.intervals=new Interval(); 
} 

然後包括它

<script src='interval.js'></script> 

<script src='YourSubfolder/interval.js'></script> 

在你的頁面,你可以註冊的時間間隔:

intervals.Register('YourIntervalName', YourMethod, millisecondsInterval); 

或註銷它:

intervals.Deregister('YourIntervalName'); 
0

您可以使用在客戶端的計時器。這裏是示例代碼,不完全是,但可以幫助你找出該做什麼。

var timer; 

function initTimer(){ 
    clearTimeout(timer); 
    timer = setTimeout(function(){ 
     if(!confirm("Do you want to continue?")) { 
       // do some postback to logout, e.g. trigger a logout button 
     } 
     else 
       initTimer(); 
    }, 36000); 
} 

// in this case, if user does not click in an hour, 
// the confirm dialog will display. 
document.onclick = function(){ 
    // reset the timer every time user click on page 
    initTimer(); 
}); 

window.onload = function(){ 
    initTimer(); 
});