不要在刷新时重置超时

时间:2014-10-22 03:40:10

标签: javascript jquery settimeout

我正在创建在线考试类应用程序并在我的应用程序中

当用户点击开始按钮时,我们将显示3:00分钟的计时器

使用setTimeout(func,3*60*1000)

但是当我刷新页面时,重置功能正在重置,如何停止此

如何做到这一点,这是我的应用程序必备功能。

Javascript或jquery欢迎任何事情

1 个答案:

答案 0 :(得分:0)

如果您需要以一种用户无法篡改的万无一失的方式实现这一目标,您必须设置计时器服务器端。

如果 ,那么您可以将开始时间存储在localStorage中,并在页面加载时使用该值从其开始的位置恢复计时器。

var oldStartTime = localStorage.getItem('startTime');
var startTime = oldStartTime ? new Date(oldStartTime) : new Date();
localStorage.setItem('startTime', startTime);

// you can now use startTime to determine the remaining duration for setTimeout:

var elapsed = new Date() - startTime;
var duration = 180000 - elapsed;

setTimeout(myFunction, duration);

既然你说它是考试,我认为你希望人们不能作弊。如果是这样的话,那么单凭客户端Javascript就没有办法做到这一点。用户始终可以篡改"如果它发生在他们自己的浏览器中。