Javascript 需要在30秒后或关闭浏览器后清除会话并注销用户
代码在MVC中,而且每个请求都使用ajax调用,所以url没有变化 使用下面的代码,我将能够执行首次操作,即如果用户30秒不活动,则注销用户。但在用户注销时无法执行操作Javascript 需要在30秒后或关闭浏览器后清除会话并注销用户,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,代码在MVC中,而且每个请求都使用ajax调用,所以url没有变化 使用下面的代码,我将能够执行首次操作,即如果用户30秒不活动,则注销用户。但在用户注销时无法执行操作 <script> $(function () { $("body").on('click keypress', function () { ResetThisSession(); }); }); var timeInSecondsAfte
<script>
$(function () {
$("body").on('click keypress', function () {
ResetThisSession();
});
});
var timeInSecondsAfterSessionOut = 30; // to change the session time out, change this value. Must be in seconds.
var secondTick = 0;
function ResetThisSession() {
secondTick = 0;
}
function StartThisSessionTimer() {
secondTick++;
console.log(secondTick);
if (secondTick > timeInSecondsAfterSessionOut) {
clearTimeout(tick);
window.location = '/Account/LogOff/0';
}
tick = setTimeout("StartThisSessionTimer()", 1000);
}
StartThisSessionTimer();
</script>
$(函数(){
$(“正文”)。在('单击按键',函数(){
重置此会话();
});
});
var timeInSecondsAfterSessionOut=30;//要更改会话超时,请更改此值。必须在几秒钟内完成。
var=0;
函数ResetThisSession(){
secondTick=0;
}
函数StartThisSessionTimer(){
secondTick++;
console.log(secondTick);
如果(第二次勾选>时间InSecondSafterSessionOut){
清除超时(滴答声);
window.location='/Account/LogOff/0';
}
tick=setTimeout(“starttthissessiontimer()”,1000);
}
开始此会话计时器();
我还尝试了脚本的卸载或卸载前方法,但结果不符合预期
如果用户在30秒内未执行任何操作或用户关闭浏览器,则需要注销用户
提前感谢。正如我看到的,var tick是本地的,并且在每个tick中定义,因此每秒调用一次超时:
function StartThisSessionTimer() {
secondTick++;
console.log(secondTick);
if (secondTick > timeInSecondsAfterSessionOut) {
clearTimeout(tick);
window.location = '/Account/LogOff/0';
}
tick = setTimeout("StartThisSessionTimer()", 1000);
}
尝试将超时的初始化项分开,在超时的重复器的相同范围之外。
告诉我们是否有用
Tks