0

私のフォームでは、radajaxpanel内にタイマーがあります。このタイマーは、1分ごとにフォームの自動保存を行うために使用されます。

今私の問題は、自動保存が呼び出されるたびに、セッションタイムアウトを更新していることです。しかし、私が必要としているのは、アイドル状態の1時間後に通知を表示し(ユーザーにセッションを更新するように依頼するか、ユーザーをログアウトします)、自動保存セッションのタイムアウト更新を無視することです。

アップデート:

これがコードです

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

</telerik:RadAjaxPanel>

AutoSaveNotificationCallBackUpdateはポストバックを実行するため、セッションタイムアウトがリセットされます。

4

2 に答える 2

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();
});
于 2013-01-03T15:02:32.413 に答える
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');
于 2013-01-03T13:03:06.423 に答える