我正在使用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>
编辑:我现在意识到它显示我只是在点击按钮时清除计时器。我只是想在每次尝试重置它之前看看它是否真的清除它。
答案 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();