全局Javascript计时器不会从按钮单击重置

时间:2017-05-09 15:54:14

标签: javascript c# jquery model-view-controller timer

我正在使用MVC应用程序,我遇到了一个全局javascript计时器的问题,如果用户的会话过期,他们会将用户发送到登录页面。设置计时器并让它执行注销功能工作正常,但我试图设置一个点击功能应该重置计时器(试图阻止计时器过早关闭用户的会话)我不知道我是什么做错了。

_Layout.csthml中的代码

<script>
//session end
var sessionTimer = 0;
var sessionTimeoutWarning = @Session.Timeout- 1;
var sTimeout = parseInt(sessionTimeoutWarning) * 60 * 1000;

function SessionEnd() {
    document.getElementById('logoutForm').submit();
}
function SetTimer() {
    ClearTimer();
    sessionTimer = setInterval('SessionEnd()', sTimeout);
};
function ClearTimer() {
    clearInterval(sessionTimer);
};
$('body').on('click', function () {
        ClearTimer();
});
$(document).ready(function () {
    SetTimer();
});

Web.config中的相关代码:

<sessionState timeout="2"></sessionState>

编辑:我现在意识到它显示我只是在点击按钮时清除计时器。我只是想在每次尝试重置它之前看看它是否真的清除它。

1 个答案:

答案 0 :(得分:0)

看起来问题是在_Layout中使用$('document')。准备触发SetTimer。代码在_Index_Layout中,如下所示:

    var tooltips = [{
            target: 'guestButton',
            html: 'A very simple tooltip'
        }];
Ext.each(tooltips, function(config) {
        Ext.create('Ext.tip.ToolTip', config);
    });  

Ext.QuickTips.init();