Jquery 鼠标移动或单击时停止时间

Jquery 鼠标移动或单击时停止时间,jquery,asp.net,session,Jquery,Asp.net,Session,我想在移动鼠标或按键时停止计时器。这就是我到目前为止所做的,它通过倒数计时来工作。我不知道需要做什么来停止时间。(代码来自此页:) 函数SessionExpireAlert(超时){ var秒=超时/1000; document.getElementsByName(“secondsIdle”).innerHTML=seconds; document.getElementsByName(“秒”).innerHTML=seconds; setInterval(函数(){ 秒--; document

我想在移动鼠标或按键时停止计时器。这就是我到目前为止所做的,它通过倒数计时来工作。我不知道需要做什么来停止时间。(代码来自此页:)


函数SessionExpireAlert(超时){
var秒=超时/1000;
document.getElementsByName(“secondsIdle”).innerHTML=seconds;
document.getElementsByName(“秒”).innerHTML=seconds;
setInterval(函数(){
秒--;
document.getElementById(“秒”).innerHTML=seconds;
document.getElementById(“secondsIdle”).innerHTML=seconds;
}, 1000);
setTimeout(函数(){
//在超时20秒前显示弹出窗口。
$find(“mpeTimeout”).show();
},超时-20*1000);
setTimeout(函数(){
window.location=“login.aspx”;
},超时);
};
函数ResetSession(){
//重定向到刷新会话。
window.location=window.location.href;
}
$(this).mousemove(函数(e){
//代码位于此处(此处需要帮助)
});
$(此)。按键(功能(e){
//代码位于此处(此处需要帮助)
});

您可以尝试的一件事是将秒数包装在if语句中。例如:

 if(noMovement){
      seconds--;
      ...
 }

 $(this).mousemove(function(e) {
    noMovement=false;
});

$(this).keypress(function(e) {
    noMovement=false;
});

如果要检测不活动并警告用户他将注销,可以执行以下操作:

工作区: 您可以结合sweetAlert弹出警告:

如果用户移动鼠标或按键,它将停止3秒倒计时,并重新启动。。。 如果3秒钟后没有活动,则执行alert()代码

您可以使用库SweetAlert2在弹出窗口中显示漂亮的消息,cf
带有倒计时消息的示例代码:

我们是否可以有一个允许用户停留在页面上的警报?是的,我们的想法是显示一个sweetalert弹出窗口,例如5分钟倒计时,以及一个按钮“保持连接”…如果用户单击此按钮,他将保持连接,否则,倒计时结束时的弹出窗口将重定向到注销页面。。。Sweetalert2提供了倒计时示例,请参见他们的示例“带有自动关闭计时器的消息”,我添加了自动弹出警告的示例代码,请参见下面的回答,以及此JSFIDLE:
 if(noMovement){
      seconds--;
      ...
 }

 $(this).mousemove(function(e) {
    noMovement=false;
});

$(this).keypress(function(e) {
    noMovement=false;
});
$(document).ready(function () {

                var time = 3000 ; //session timeout 3 seconds for the tests
                var timeout;
                var isLogout = false;

                timeout = setTimeout(function() {
                    //Things you need to do
                        isLogout = true; 
                        alert("logged out !");

                }, time);

                $(document).on('mousemove keypress', function () {
                    if (!isLogout) {
                        clearTimeout(timeout);
                        timeout = setTimeout(function() {
                            //Things you need to do
                             isLogout = true;
                             alert("logged out !");
                        }, time);
                    }
                });
            });