Javascript 页面刷新后如何继续计时?

Javascript 页面刷新后如何继续计时?,javascript,countdowntimer,Javascript,Countdowntimer,目前,我的代码中有这个JavaScript 功能启动定时器(持续时间,显示){ var定时器=持续时间, 分,秒; setInterval(函数(){ 分钟=parseInt(计时器/60,10); 秒=parseInt(计时器%60,10); 分钟=分钟

目前,我的代码中有这个JavaScript

功能启动定时器(持续时间,显示){
var定时器=持续时间,
分,秒;
setInterval(函数(){
分钟=parseInt(计时器/60,10);
秒=parseInt(计时器%60,10);
分钟=分钟<10?“0”+分钟:分钟;
秒=秒<10?“0”+秒:秒;
display.textContent=分钟+“:”+秒;
如果(--定时器<0){
定时器=0;
}
}, 1000);
}
window.onload=函数(){
变量五分钟=60*0.18,
display=document.querySelector(“#time”);
startTimer(五分钟,显示);//`在此处输入代码`
};

如果您的服务器端没有数据库之类的东西,并且/或者用户没有登录,我认为cookie是您最好的选择:

这可能有助于您开始,定义set并获取cookie函数

设置

得到

然后,在加载事件中的某个地方,通过get函数设置变量,如下所示:

setCookie("minutes", minutes.toString(), 1);
setCookie("seconds", seconds.toString(), 1);
minutes = getCookie("minutes");
seconds = getCookie("seconds");

在这里阅读更多内容,这只是关于如何制作cookie的指南,下面是工作代码。看看这里的小提琴:你需要调整计时器,我把它设置为10:00

  <script>
  var minutes = 0;
  var seconds = 0;
  function startTimer(duration, display) {
    var timer = duration,
        minutes, seconds;
    setInterval(function() {
      minutes = parseInt(timer / 60, 10);
      seconds = parseInt(timer % 60, 10);

      minutes = minutes < 10 ? "0" + minutes : minutes;
      seconds = seconds < 10 ? "0" + seconds : seconds;

      display.textContent = minutes + ":" + seconds;

      setCookie("minutes", minutes.toString(), 1);
      setCookie("seconds", seconds.toString(), 1);

      if (--timer < 0) {
        timer = 0;
      }
    }, 1000);
  }


  window.onload = function() {
     var minutes_data = getCookie("minutes");
     var seconds_data = getCookie("seconds");
     var timer_amount = (60*10); //default
      if (!minutes_data || !seconds_data){
        //no cookie found use default
      }
      else{
        timer_amount = parseInt(minutes_data*60)+parseInt(seconds_data)
      }

    var fiveMinutes = timer_amount,
        display = document.querySelector('#time');
    startTimer(fiveMinutes, display); //`enter code here`
  };

   function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+d.toUTCString();
    document.cookie = cname + "=" + cvalue + "; " + expires;
   } 

   function getCookie(cname) {
   var name = cname + "=";
   var ca = document.cookie.split(';');
   for(var i=0; i<ca.length; i++) {
      var c = ca[i];
      while (c.charAt(0)==' ') c = c.substring(1);
      if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
   }
   return "";
  } 

  </script>

  <div id="time"></div>

var分钟=0;
var秒=0;
功能启动计时器(持续时间、显示){
var定时器=持续时间,
分,秒;
setInterval(函数(){
分钟=parseInt(计时器/60,10);
秒=parseInt(计时器%60,10);
分钟=分钟<10?“0”+分钟:分钟;
秒=秒<10?“0”+秒:秒;
display.textContent=分钟+“:”+秒;
setCookie(“分钟”,minutes.toString(),1);
setCookie(“seconds”,seconds.toString(),1);
如果(--定时器<0){
定时器=0;
}
}, 1000);
}
window.onload=函数(){
var minutes_data=getCookie(“分钟”);
var seconds_data=getCookie(“秒”);
var timer_amount=(60*10);//默认值
如果(!分钟数据| |!秒数据){
//未找到使用默认设置的cookie
}
否则{
计时器数量=parseInt(分钟数据*60)+parseInt(秒数据)
}
var fiveMinutes=计时器的数量,
display=document.querySelector(“#time”);
startTimer(五分钟,显示);//`在此处输入代码`
};
函数setCookie(cname、cvalue、exdays){
var d=新日期();
d、 设置时间(d.getTime()+(exdays*24*60*60*1000));
var expires=“expires=“+d.toutString();
document.cookie=cname+“=”+cvalue+”;“+expires;
} 
函数getCookie(cname){
变量名称=cname+“=”;
var ca=document.cookie.split(“;”);

对于(var i=0;icookies或localstorageor query parameters)。您可以使用cookie或local storage。由于这个答案在技术上没有错,只是更多的是基于指针的答案,所以我继续发布了另一个答案。
minutes = getCookie("minutes");
seconds = getCookie("seconds");
  <script>
  var minutes = 0;
  var seconds = 0;
  function startTimer(duration, display) {
    var timer = duration,
        minutes, seconds;
    setInterval(function() {
      minutes = parseInt(timer / 60, 10);
      seconds = parseInt(timer % 60, 10);

      minutes = minutes < 10 ? "0" + minutes : minutes;
      seconds = seconds < 10 ? "0" + seconds : seconds;

      display.textContent = minutes + ":" + seconds;

      setCookie("minutes", minutes.toString(), 1);
      setCookie("seconds", seconds.toString(), 1);

      if (--timer < 0) {
        timer = 0;
      }
    }, 1000);
  }


  window.onload = function() {
     var minutes_data = getCookie("minutes");
     var seconds_data = getCookie("seconds");
     var timer_amount = (60*10); //default
      if (!minutes_data || !seconds_data){
        //no cookie found use default
      }
      else{
        timer_amount = parseInt(minutes_data*60)+parseInt(seconds_data)
      }

    var fiveMinutes = timer_amount,
        display = document.querySelector('#time');
    startTimer(fiveMinutes, display); //`enter code here`
  };

   function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+d.toUTCString();
    document.cookie = cname + "=" + cvalue + "; " + expires;
   } 

   function getCookie(cname) {
   var name = cname + "=";
   var ca = document.cookie.split(';');
   for(var i=0; i<ca.length; i++) {
      var c = ca[i];
      while (c.charAt(0)==' ') c = c.substring(1);
      if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
   }
   return "";
  } 

  </script>

  <div id="time"></div>