Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.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 如何为不';t重置_Javascript_Php_Time_Timer - Fatal编程技术网

Javascript 如何为不';t重置

Javascript 如何为不';t重置,javascript,php,time,timer,Javascript,Php,Time,Timer,我需要帮助存储此计时器倒计时的时间它正在运行正常,但当我按刷新或返回浏览器时,计时器将像15:00一样重新启动,然后计时器启动示例时间是9:00如果我按刷新,它将返回到15:00 (函数(){ 功能显示(通知程序、str){ document.getElementById(通知程序).innerHTML=str; } 函数toMinuteAndSecond(x){ 返回~~(x/60)+“:”+(x%600){ 保持-=1; setTimeout(arguments.callee,1000);

我需要帮助存储此计时器倒计时的时间它正在运行正常,但当我按刷新或返回浏览器时,计时器将像15:00一样重新启动,然后计时器启动示例时间是9:00如果我按刷新,它将返回到15:00

(函数(){
功能显示(通知程序、str){
document.getElementById(通知程序).innerHTML=str;
}
函数toMinuteAndSecond(x){
返回~~(x/60)+“:”+(x%60<10?:“)+x%60;
}
功能设置计时器(保留、操作){
var作用;
(函数倒计时(){
显示(“倒计时”,toMinuteAndSecond(保持));
如果(动作=动作[保持]){
动作();
}
如果(保持>0){
保持-=1;
setTimeout(arguments.callee,1000);
}
})();//结束倒计时
}
设定计时器(900{
120:函数(){
显示(“通知”,“只剩1分钟”);
},
50:职能(){
显示(“通知者”,“还剩50秒”);
},
}
}
);
})();

JS中的
-注意我将localStorage放在哪里(它不在代码段中运行) 我还修复了发布代码中的错误

(函数(){
功能显示(通知程序、str){
document.getElementById(通知程序).innerHTML=str;
}
函数toMinuteAndSecond(x){
返回~~(x/60)+“:”+(x%60<10?:“)+x%60;
}
功能设置计时器(保留、操作){
var作用;
(函数倒计时(){
//添加localStorage.setItem(“倒计时”,保留)
显示(“倒计时”,toMinuteAndSecond(保持));
如果(动作=动作[保持]){
动作();
}
如果(保持>0){
保持-=1;
setTimeout(arguments.callee,1000);
}
else显示(“倒计时”、“完成”);
})();//结束倒计时
}
setTimer(30,{//将30更改为+localStorage.getItem(“倒计时”)| 30;
20:功能(){
显示(“倒计时”,“还剩20秒”);
},
10:函数(){
显示(“倒计时”,“还剩10秒”);
},
});
})();

在这里,我们应该将变量
保留在本地存储中。即使在刷新之后,本地存储中的变量也将可用

附加代码,该代码将按预期为您工作

(function() {

    function display(notifier, str) {
      document.getElementById(notifier).innerHTML = str;
    }

    function toMinuteAndSecond(x) {
      return ~~(x / 60) + ":" + (x % 60 < 10 ? "0" : "") + x % 60;
    }

    function setTimer(remain, actions) {
      var action;
      localStorage.remain = remain;
      (function countdown() {
        remain =  localStorage.remain;
        display("countdown", toMinuteAndSecond(remain));
        if (action = actions[remain]) {
          action();
        }
        if (remain > 0) {
          localStorage.remain -= 1;
          setTimeout(arguments.callee, 1000);
        }
      })(); // End countdown
    }
    setTimer(900, {
        120: function() {
          display("notifier", "Just 1 minute to go");
        },
        50: function() {
          display("notifier", "50 seconds left");
        },

      }
    }
  );
})();
(函数(){
功能显示(通知程序、str){
document.getElementById(通知程序).innerHTML=str;
}
函数toMinuteAndSecond(x){
返回~~(x/60)+“:”+(x%60<10?:“)+x%60;
}
功能设置计时器(保留、操作){
var作用;
localStorage.remaine=remain;
(函数倒计时(){
remaine=localStorage.remaine;
显示(“倒计时”,toMinuteAndSecond(保持));
如果(动作=动作[保持]){
动作();
}
如果(保持>0){
localStorage.reserve-=1;
setTimeout(arguments.callee,1000);
}
})();//结束倒计时
}
设定计时器(900{
120:函数(){
显示(“通知”,“只剩1分钟”);
},
50:职能(){
显示(“通知者”,“还剩50秒”);
},
}
}
);
})();

因此,将开始时间存储在PHP上的会话中,并在页面加载时使用该时间计算剩余时间。一些合理的代码缩进将是一个好主意。它帮助我们阅读代码,更重要的是,它将帮助您为自己的利益调试代码。您可能会被要求在几周/几个月内修改此代码,最后您会感谢我。我创建了一个代码片段,在控制台中出现语法错误。请修复你好epascarello先生谢谢在javascript上执行如何?它正在工作谢谢你我现在唯一的问题是如何使它再次启动hehe非常感谢mplungjanhow先生如果他们想再次测试,请重新运行计时器