用javascript定时器倒计时

时间:2015-04-16 13:20:21

标签: javascript

我有一个计时器倒计时javascript.It倒计时从3分钟。但如果用户重新加载页面我必须恢复倒计时。我的意思是用户加载页面倒计时从3分钟开始然后1分钟用户重新加载页面倒计时应该从2分钟开始。我怎么能这样做?我不想要任何我需要算法的代码。

3 个答案:

答案 0 :(得分:1)

每次更改后,您需要将计数器的状态保存到某种持久存储中。

我只是使用:

localStorage['time_left'] = JSON.stringify(time_left);

加载页面时,首先尝试加载计时器的状态。

time_left = JSON.parse(localStorage['time_left']);

然后检查该值是否已存储。

if(time_left===undefined){// you're on fresh instance

在计时器结束后清除存储的变量也是个好主意。

祝你好运:>

答案 1 :(得分:0)

您需要将当前时间保留在计时器的末尾,以便稍后可以访问它,即使在刷新页面之后也是如此。我会想到Local storage,但其他方法也许是可能的。

不是将计时器设置为3分钟,而是set an interval每秒运行一次功能。您将两条信息保存到存储中:

  1. 到结束的时间,也许是几秒钟(180分钟,3分钟)
  2. 自启动以来已经过的时间(默认为0,每个时间间隔递增)
  3. 每次间隔功能计时,您都会增加通过的总时间,并检查它是否已经高于预期的总量。条件为真时执行自定义操作。不要忘记clear the interval,否则它会无限期地无用地继续下去。

答案 2 :(得分:0)

  var remaining = localStorage.remaining || 180;
  window.setInterval(function(){
    remaining = remaining - 1;
    document.querySelector('#countdown').innerHTML = remaining;
  }, 1000);

  window.onbeforeunload = function(){
     // Save remaining time as the window is closed or navigated elsewhere
     localStorage.remaining = remaining;
  };