How to make countdown timer not reset when refresh the browser?

╄→гoц情女王★ 提交于 2019-11-28 01:42:05

Try to use local storage :

// Store
localStorage.setItem("key", "value");
// Retrieve
document.getElementById("result").innerHTML=localStorage.getItem("key"); 

Update

Example :

<head>

</head>
<body>
    <div id="divCounter"></div>
    <script type="text/javascript">
    if(localStorage.getItem("counter")){
      if(localStorage.getItem("counter") >= 10){
        var value = 0;
      }else{
        var value = localStorage.getItem("counter");
      }
    }else{
      var value = 0;
    }
    document.getElementById('divCounter').innerHTML = value;

    var counter = function (){
      if(value >= 10){
        localStorage.setItem("counter", 0);
        value = 0;
      }else{
        value = parseInt(value)+1;
        localStorage.setItem("counter", value);
      }
      document.getElementById('divCounter').innerHTML = value;
    };

    var interval = setInterval(function (){counter();}, 1000);
  </script>
</body>

Store the server time in a cookie (see setcookie) and load that. You'll want to think about how long you want this cookie to last though.

You can use local storage, such as :

localStorage.setItem('countDownValue', curtime); // To set the value
...
curtime = localStorage.getItem('countDownValue'); // To get the value

I think you have to save some value in the cookie and reset timer only if timer > x && cookie is already been setted.

Set cookie on init:

setcookie("reloaded","true");

Set cookie on reaload:

setcookie("reloaded","false");

Check:

if($_COOKIE["reloaded"] == false && timer > $time) {
   /* reset timer */
}
<form name="counter">
    <input type="text" size="8" name="chandresh" id="counter">
</form>

<script type="text/javascript">
function getCookie(cname) {
    var name = cname + "=";
    var decodedCookie = decodeURIComponent(document.cookie);
    var ca = decodedCookie.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 "";
}

var cnt = 60;
function counter(){
    if(getCookie("cnt") > 0){
        cnt = getCookie("cnt");
    }
    cnt -= 1;
    document.cookie = "cnt="+ cnt;
    jQuery("#counter").val(getCookie("cnt"));

    if(cnt>0){
        setTimeout(counter,1000);
    }

}

counter();
</script>

Source: http://chandreshrana.blogspot.in/2017/01/how-to-make-counter-not-reset-on-page.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!