Search code examples
javascriptphpwebtimercountdown

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


When i refresh the browser, the timer resets, so how to make it not reset? This is my code. Please check it.

<?php echo $waktune; ?> // You can change it into seconds
var detik = <?php echo $waktune; ?>;
if (document.images) {
    parselimit = detik
}
function begintimer() {
    if (!document.images)
        return
    if (parselimit < 12) {
        document.getElementById("servertime").style.color = "Green";
    }
    if (parselimit == 1) {
        document.getElementById("hasil").submit();
    } else {
        parselimit -= 1 curmin = Math.floor(parselimit / 60)
            cursec = parselimit % 60
        if (curmin != 0)
            curtime = curmin + ":" + cursec + ""else
            curtime = cursec + " detik"document.getElementById("servertime").innerHTML = curtime setTimeout("begintimer()", 1000)
        }
}

Solution

  • Try to use session storage :

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

    Update

    Example :

    <head>
    
    </head>
    <body>
        <div id="divCounter"></div>
        <script type="text/javascript">
        if (sessionStorage.getItem("counter")) {
          if (sessionStorage.getItem("counter") >= 10) {
            var value = 0;
          } else {
            var value = sessionStorage.getItem("counter");
          }
        } else {
          var value = 0;
        }
        document.getElementById('divCounter').innerHTML = value;
    
        var counter = function () {
          if (value >= 10) {
            sessionStorage.setItem("counter", 0);
            value = 0;
          } else {
            value = parseInt(value) + 1;
            sessionStorage.setItem("counter", value);
          }
          document.getElementById('divCounter').innerHTML = value;
        };
    
        var interval = setInterval(counter, 1000);
      </script>
    </body>