Ich versuche localStorage
Daten in einem Start/Stop Timer abzurufen. Mein Ziel ist es, den Timer automatisch beim Laden der Seite zu starten, aber wenn der Benutzer verlässt und zu einem späteren Zeitpunkt (Seitenaktualisierung) zurückkehrt, wird der Timer dort weitermachen, wo er aufgehört hat.LocalStorage-Daten in "Start/Stopp" -Timer abrufen
Ich bin kurz davor, dies zur Arbeit ... aber nach jeder Seite zu aktualisieren beginnt es wieder auf 00:00:00
.
Ich erstellte eine setTimeout
Funktion mit 3 Sekunden Verzögerung, um zu veranschaulichen, dass einige davon funktioniert.
Vielen Dank an alle, die mir helfen können, mich auf den richtigen Weg zu bringen.
HTML
<!-- Timer -->
<div class="time-wrapper">
<strong>Time</strong>
<span id="time-total">00:00:00</span>
</div>
<!-- Controls -->
<div class="button-wrapper">
<button id="start-timer" class="button">Start</button>
<button id="pause-timer" class="button">Pause</button>
</div>
JS(mit EasyTimer.js Plugin)
/* Create Timer
********************************/
var timer = new Timer();
var timeTotal = $('#time-total'),
timeKey = 'time_stored',
timeStored = localStorage.getItem(timeKey);
// Update Event
timer.addEventListener('secondsUpdated', function (e) {
$(timeTotal).html(timer.getTimeValues().toString());
});
// Started Event
timer.addEventListener('started', function (e) {
$(timeTotal).html(timer.getTimeValues().toString());
});
// Start Timer
$('#start-timer').click(function() { timer.start(); });
$('#pause-timer').click(function() { timer.pause(); });
/* When page loads
********************************/
$(document).ready(function() {
setInterval(function() {
localStorage.setItem(timeKey, timeTotal.text());
}, 500);
if (timeStored) {
timeTotal.text(timeStored);
}
setTimeout(function() {
$('#start-timer').click();
timer.start();
}, 3000);
});
Ich habe versucht, Ihren Code, aber der Timer ist nicht korrekt, wenn Sie die Seite aktualisieren. Es sieht so aus, als ob es ungefähr 4 bis 5 Sekunden hinter jeder Zeit ist. Irgendeine Idee, was passieren könnte? Ich habe einen Test-Codepen mit Ihrem Code im Inneren erstellt, um Ihnen das Problem zu zeigen: https://codepen.io/oneezy/pen/xpKPxM – Oneezy
mein böses tut mir leid - bitte sehen Sie den aktualisierten Code. Ich habe den securitiesUpdated-Handler modifiziert, um das Problem zu beheben –
kein Problem! gerade getestet und es funktioniert wie ein Charme. – Oneezy