Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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 刷新并关闭浏览器时计时器重置_Javascript_Jquery_Timer - Fatal编程技术网

Javascript 刷新并关闭浏览器时计时器重置

Javascript 刷新并关闭浏览器时计时器重置,javascript,jquery,timer,Javascript,Jquery,Timer,当浏览器刷新并关闭时,如何使计时器不重置 i美国博客=博主 我这里的问题是,当我按下刷新时,计时器将重新启动到其原始时间。 单击“刷新”按钮或关闭浏览器时,如何使计时器不重置 这是我的密码 以下是一些例子: linkforyouTimermylinkhiReady 功能第二次启动{ var h=数学楼层(s/3600); s-=h*3600; var m=数学楼层(s/60); s-=m*60; 返回h+“:”+(m

当浏览器刷新并关闭时,如何使计时器不重置

i美国博客=博主

我这里的问题是,当我按下刷新时,计时器将重新启动到其原始时间。 单击“刷新”按钮或关闭浏览器时,如何使计时器不重置

这是我的密码

以下是一些例子:

linkforyouTimermylinkhiReady

功能第二次启动{
var h=数学楼层(s/3600);
s-=h*3600;
var m=数学楼层(s/60);
s-=m*60;
返回h+“:”+(m<10?'0'+m:m)+“:”+(s<10?'0'+s:s);
}
$(函数(){
$(“.flink”)。单击(函数(){
var timer=$(this.parent().parent().find('.timer');
if(timer.data('secleft')0){
$(this.data('secleft',$(this.data('secleft')-(curtime-lasttime));
$(this).text(secondsTimeSpanToHMS($(this).data('secleft'));
}否则{
if($(this).text()!=$(“#语言”).data('ready')){
$(this).text($(“#语言”).data('ready');
$(this.parent().prev().fadeTo(300,1);
$(this.parent().prev().prev().fadeTo(300,1);
}
}
});
lasttime=缩短时间;
设置超时(定时器,1000);
}
定时器();
});

链接
给你
计时器
你好
准备好的

这是不可能的,因为如果刷新页面,浏览器将重新运行javascript代码。在重新加载页面之前,最好将当前时间存储在cookie、本地存储或某个后端服务器上,当页面重新加载时,从当前时间开始计时

刷新或关闭选项卡或浏览器时,JavaScript中的所有数据都会被删除-这很正常。如果您需要存储计时器,您可以使用cookies并将有关计时器的数据保存在
timer()
函数中。例如:

function timer() {
curtime = Math.round($.now() / 1000);
document.cookie="cookie_name="+curtime; // save curtime variable to cookie_name cookie
$(".timer").each(function() {
  if ($(this).data('secleft') > 0) {
    $(this).data('secleft', $(this).data('secleft') - (curtime - lasttime));
    $(this).text(secondsTimeSpanToHMS($(this).data('secleft')));
  } else {
    if ($(this).text() != $("#language").data('ready')) {
      $(this).text($("#language").data('ready'));
      $(this).parent().prev().fadeTo(300, 1);
      $(this).parent().prev().prev().fadeTo(300, 1);
    }
  }
});
lasttime = curtime;
setTimeout(timer, 1000);
}
timer();
如果您想读取具有上次curtime值的cookie,可以通过获取
document.cookie
value并拆分(或解析)它来检索您的值


您有一些关于Cookie API和使用示例的信息(也有用于Cookie管理的现成函数)。

当页面刷新时,数据消失,因此我们需要将小时、分钟和秒存储在某个位置,最好且简单的方法是本地存储。因此,在计时器第一次启动时,然后存储小时、分钟和秒,然后从那里获取hh、mm、ss,这样它在刷新时不会消失。gd luck

将值存储在cookie或localstorage中。我需要cookie或localstorage的代码,并使用blogSo在cookie或localstorage中设置值,然后在页面加载时读取。相当基本的概念。如果有,就使用它,如果没有,就做你不想做的事情来启动时间。这是一个评论,而不是一个答案。@Arcanecaraeda我认为评论只是为了获取关于这个问题的信息。Epasarello的评论与你的类似,是一个评论。我明白你的意思,但像这样的简明答案也应该是评论。