Javascript 刷新时未重置倒计时时钟

Javascript 刷新时未重置倒计时时钟,javascript,clock,Javascript,Clock,我这里有一个倒计时时钟,当页面刷新时会重置。如果有人能帮我,我会很感激的 我已经包括了下面的脚本 <script type="text/javascript"> var ticker = function() { $("#ticker").css({ left: "120%" }).animate({ left: "-420px" }, 6000, 'linear', ticker

我这里有一个倒计时时钟,当页面刷新时会重置。如果有人能帮我,我会很感激的

我已经包括了下面的脚本

<script type="text/javascript">
    var ticker = function() {
        $("#ticker").css({
            left: "120%"
        }).animate({
            left: "-420px"
        }, 6000, 'linear', ticker);
    }

    ticker();
</script>

var ticker=函数(){
$(“#ticker”).css({
左:“120%。”
}).制作动画({
左:“-420px”
},6000,“线性”,股票代码);
}
股票代码();

考虑到用户不在页面时需要它“运行”,我将指出Javascript是一种客户端脚本语言Javascript代码在本地运行,即由浏览器解释。如果用户刷新页面直到您将其存储在某个位置,则很难“保持”跟踪。您的解决方案可以有不同的方法,例如:-

  • 服务器端时钟
  • 您可以使用这三个选项中的任何一个。您可以使用localstorage来保存时钟结束时间,每当用户刷新页面时,都可以从localstorage获取值并相应地启动时钟。类似的方法也可用于cookie。或者,您可以使用一些服务器端代码来初始化时钟,只要页面加载,服务器就会相应地设置启动时钟。但是,正如上面在评论中提到的,可能存在一些滞后。因此,在我看来,如果您只想使用javascript,最好的方法是使用Cookie/localstorage来节省倒计时达到值0的确切时间。因此,每次加载到页面时,您都可以获取存储的值,并获取丢失的时间长度,并相应地设置时钟

    一些编码

    创建具有过期时间的cookie:

    获取一个cookie:


    尝试将左css属性保存在localstorage on.unload事件中,并在init上还原它。@MANISHKUMARCHOUDHARY我没有收到任何错误。它可以工作,但会在加载时刷新。当用户的刷新时间需要几秒钟时,会发生什么情况?i、 e.如果您的倒计时时间为10秒,您成功保存了它,并且刷新页面时经过5秒,它应该显示5秒?或者10?@Mayday它需要在用户不在页面上时继续倒计时。我在你的问题中没有看到任何倒计时的代码-我只看到了一点jQuery动画。什么是股票代码?
    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 "";
    }
    
    function checkCookie() {
      var clock = getCookie("clock");
      if (clock != "") {
        //You already have the cookie. Make use of it
      } else {
        //You still dont have the cookie, create new clock, and save cookie
        //i.e.
        setCookie("clock", new Date().getTime().toString(), 365);
      }
    }