Когда я обновляю браузер, таймер сбрасывается, и как сделать его не сбрасывать? Это мой код. Пожалуйста, проверь это.
<?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) } }
Попробуйте использовать локальное хранилище:
// Store localStorage.setItem("key", "value"); // Retrieve document.getElementById("result").innerHTML=localStorage.getItem("key");
Обновить
Пример :
<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>
Храните время сервера в файле cookie (см. Setcookie ) и загрузите его. Вам нужно подумать о том, как долго вы хотите, чтобы этот файл cookie продолжался.
Вы можете использовать локальное хранилище , например:
localStorage.setItem('countDownValue', curtime); // To set the value ... curtime = localStorage.getItem('countDownValue'); // To get the value
Я думаю, вам нужно сохранить некоторую ценность в cookie и сбросить таймер только в том случае, если таймер> x && cookie уже установлен.
Установите cookie на init:
setcookie("reloaded","true");
Установите cookie на загрузку:
setcookie("reloaded","false");
Проверьте:
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>
Источник: http://chandreshrana.blogspot.in/2017/01/how-to-make-counter-not-reset-on-page.html