Javascript 我想点击按钮一次,每当我刷新页面时,计时器仍将继续计数

Javascript 我想点击按钮一次,每当我刷新页面时,计时器仍将继续计数,javascript,html,timer,local-storage,Javascript,Html,Timer,Local Storage,当我单击开始按钮时,它将开始计数,但当我刷新页面或重新启动浏览器时,它将停止计数,当我再次单击开始按钮时,它将继续计数我希望它只单击一次开始按钮,然后开始计数。每当我刷新页面或重新启动浏览器时,它仍将继续计数,直到我想停止为止。 这是我的密码 常数pad=(num)=>(“0”+num).slice(-2); $(文档).ready(函数(){ $(“#开始按钮”)。单击(函数(){ var savedDate=+localStorage.getItem(“日期”),date=new dat

当我单击开始按钮时,它将开始计数,但当我刷新页面或重新启动浏览器时,它将停止计数,当我再次单击开始按钮时,它将继续计数我希望它只单击一次开始按钮,然后开始计数。每当我刷新页面或重新启动浏览器时,它仍将继续计数,直到我想停止为止。

这是我的密码


常数pad=(num)=>(“0”+num).slice(-2);
$(文档).ready(函数(){
$(“#开始按钮”)。单击(函数(){
var savedDate=+localStorage.getItem(“日期”),date=new date();
console.log(savedDate)
如果(savedDate&!isNaN(savedDate))日期=新日期(savedDate);
else date.setHours(0,0,0,0);
var hours=date.getHours(),
分钟数=日期。getMinutes(),
秒=日期。getSeconds(),
$span=$(“#倒计时”);
var timer=setInterval(函数(){
var day=date.getDate();
date.setSeconds(date.getSeconds()+1);
如果(day!=date.getDate()){
警报(“您已登录24小时。”);
清除间隔(计时器);
localStorage.removietem(“日期”);
}
否则{
$span.text(
pad(date.getHours())+“:”+
pad(date.getMinutes())+“:”+
pad(date.getSeconds())
);
console.log(日期)
localStorage.setItem(“日期”,date.getTime())
}
}, 1000);
}); 
$(“#停止按钮”)。单击(函数(){
警惕(“停止”);
清除间隔(计时器);
localStorage.removietem(“日期”);
});
});

坚持倒数
00:00:00
开始
停止

需要重写代码的几个部分。但实现这一点的方法是使用例如window.localStorage在客户机上存储计数器的状态

你要做的是: *在页面加载时读取本地存储的标志 *如果设置了标志,则开始计数 *单击“切换此标志”并将其存储在localStorage中

    const pad = num => ("0" + num).slice(-2);
    const savedDate = localStorage.getItem("date");
    let timer;

    function start() {
      let date = new Date();
      console.log(savedDate);

      if (savedDate) {
        date = new Date(savedDate);
      } else {
        date.setHours(0, 0, 0, 0);
      }

      localStorage.setItem("date", date);

      let $span = $("#countup");

      timer = setInterval(function() {
        let day = date.getDate();
        date.setSeconds(date.getSeconds() + 1);

        if (day !== date.getDate()) {
          alert("You're logged-in for 24 hours.");
          clearInterval(timer);
          localStorage.removeItem("date");
        } else {
          $span.text(
            pad(date.getHours()) +
              ":" +
              pad(date.getMinutes()) +
              ":" +
              pad(date.getSeconds())
          );
          console.log(date);
          localStorage.setItem("date", date);
        }
      }, 1000);
    }

    function stop() {
      alert("Stop..");
      clearInterval(timer);
      localStorage.removeItem("date");
    }

    $(document).ready(function() {
      $("#StartButton").click(start);
      $("#StopButton").click(stop);

      if (savedDate) {
        start();
      }
    });

它需要重写代码的几个部分。但实现这一点的方法是使用例如window.localStorage在客户机上存储计数器的状态

你要做的是: *在页面加载时读取本地存储的标志 *如果设置了标志,则开始计数 *单击“切换此标志”并将其存储在localStorage中

    const pad = num => ("0" + num).slice(-2);
    const savedDate = localStorage.getItem("date");
    let timer;

    function start() {
      let date = new Date();
      console.log(savedDate);

      if (savedDate) {
        date = new Date(savedDate);
      } else {
        date.setHours(0, 0, 0, 0);
      }

      localStorage.setItem("date", date);

      let $span = $("#countup");

      timer = setInterval(function() {
        let day = date.getDate();
        date.setSeconds(date.getSeconds() + 1);

        if (day !== date.getDate()) {
          alert("You're logged-in for 24 hours.");
          clearInterval(timer);
          localStorage.removeItem("date");
        } else {
          $span.text(
            pad(date.getHours()) +
              ":" +
              pad(date.getMinutes()) +
              ":" +
              pad(date.getSeconds())
          );
          console.log(date);
          localStorage.setItem("date", date);
        }
      }, 1000);
    }

    function stop() {
      alert("Stop..");
      clearInterval(timer);
      localStorage.removeItem("date");
    }

    $(document).ready(function() {
      $("#StartButton").click(start);
      $("#StopButton").click(stop);

      if (savedDate) {
        start();
      }
    });

$(“#开始按钮”).one(function(){…})。为什么要调用此行两次:date.setSeconds(date.getSeconds()+1)@哦,对不起。。删除了第一个。
$(“#开始按钮”).one(function(){…})。为什么要调用此行两次:date.setSeconds(date.getSeconds()+1)@哦,对不起。。删除了第一个。你能帮我做些什么吗?我添加了一些示例代码,有足够的空间让它更好思考你能帮我做些什么吗?我添加了一些示例代码,但有足够的空间让它更好