Вы можете попытаться сохранить свое состояние счетчика, используя window.localStorage.setItem(key, value)
, а позже получить состояние счетчика с помощью window.localStorage.getItem(key)
. И вы удаляете счетчик из localStorage с помощью window.localStorage.removeItem(key)
, если счетчик завершен.
Попробуйте приведенный ниже код с функциями паузы и перезапуска:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<a href="#" id="restartClock">Restart Clock</a>
<a href="#" id="startClock">Start Clock</a>
<a href="#" id="pauseClock">Pause Clock</a>
<span id="count">50</span> seconds
<script>
var initialValue = 50;
$(document).ready(function() {
var counter = localStorage.getItem("counter");
var canCount = true;
var id;
if (counter) {
$("span#count").html(counter);
} else {
localStorage.setItem("counter", initialValue);
counter = initialValue;
$("span#count").html(initialValue);
}
function startTimer() {
if (localStorage.getItem("counter") && id === undefined) {
id = setInterval(function() {
if (canCount) {
localStorage.setItem("counter", --counter);
span = document.getElementById("count");
span.innerHTML = counter;
if (counter <= 0) {
localStorage.removeItem("counter")
clearInterval(id);
id = undefined;
}
}
}, 1000);
}
}
$("#startClock").click(startTimer);
$("#restartClock").click(function(){
counter = initialValue;
localStorage.setItem("counter", counter);
$("span#count").html(counter);
});
$("#pauseClock").click(function() {
$(this).html(canCount?"Continue Clock":"Pause Clock");
canCount = !canCount;
});
});
</script>