Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何知道设置超时还有多少时间?_Javascript - Fatal编程技术网

Javascript 如何知道设置超时还有多少时间?

Javascript 如何知道设置超时还有多少时间?,javascript,Javascript,基本上,我所做的是设置一个计时器,在一小时后注销用户,但仅当用户处于非活动状态时,因此我希望在用户执行任何活动(滚动、按键、鼠标移动、单击)后重新启动计时器问题是计时器没有重置或其他原因,这就是为什么在注销功能中,我想知道计时器是否真正重置,这就是为什么我想知道计时器经过的时间 我正在使用javascript,有什么帮助吗?您可以使用以下代码清除设置超时: var t = setTimeout(myFunction,100000); clearTimeout(t); //clear the ti

基本上,我所做的是设置一个计时器,在一小时后注销用户,但仅当用户处于非活动状态时,因此我希望在用户执行任何活动(滚动、按键、鼠标移动、单击)后重新启动计时器问题是计时器没有重置或其他原因,这就是为什么在注销功能中,我想知道计时器是否真正重置,这就是为什么我想知道计时器经过的时间


我正在使用javascript,有什么帮助吗?

您可以使用以下代码清除设置超时:

var t = setTimeout(myFunction,100000);
clearTimeout(t); //clear the timeout
如果你想知道还剩多少时间,那么你必须数秒左右;)

如果这是一个“功能”--当然要使用Javascript,但如果安全是你的目标,那就使用服务器端,毫无疑问

必须编写一些代码来跟踪可能发生的每一个小变化,滚动、单击、聚焦、按键等,以确定用户是否“空闲”,这将是一个很大的麻烦——因此最好使用类似于erichydns idleTimer,jquery插件:


编辑:这将更适合您:


此处提供了演示,实时显示用户是否“空闲”

这不是解决问题的方法。您应该让服务器上的会话超时。那么我将如何重置计时器?我正在做的正是
code函数reset_interval(){if(timer!=null){//alert('f');currTime=new Date();cleartimout(timer);//cleartime(timer);timer=null;//第二步:再次实现计时器
timer=setTimeout(auto_logout,timeBeforeLogOut);//完成了计时器的重置
}
那么你的bug就在其他地方;)clearTimeout就是这样做的。它可以工作。嗨,谢谢你的评论,插件很好,只有一个问题它轮询服务器,我必须最小化服务器请求。有js替代方案吗?这个看起来不错,让我检查一下是否可以工作。再次感谢:)