在我的表格中,我有一个位于radajaxpanel内的计时器。此计时器用于每1分钟对表单进行一次自动保存。
现在我的问题是每当调用自动保存时它都在更新会话超时。但我需要的是在闲置一小时后显示通知(要求用户续订会话,否则我将注销用户)并忽略自动保存会话超时更新。
更新
这是代码
<telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server">
<asp:Timer ID="Timer1" runat="server" OnTick="AutoSaveNotificationCallBackUpdate" Interval="60000" />
</telerik:RadAjaxPanel>
AutoSaveNotificationCallBackUpdate将执行回发,从而重置会话超时。
答案 0 :(得分: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');
答案 1 :(得分: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();
});