J'essaie de faire un compte à rebours, qui ne redémarre pas après l'actualisation de cette page. J'utilise le compte à rebours de bois de keith. Je veux compter jusqu'à 5 minutes.Compte à rebours Javascript qui persiste à travers l'actualisation de la page
var countdownTarget = localStorage.getItem('countdownTarget');
if (countdownTarget === null)
{
var countdownTarget = new Date();
countdownTarget = new Date(countdownTarget.getFullYear(), countdownTarget.getMonth(), countdownTarget.getDate(), countdownTarget.getHours(), countdownTarget.getMinutes() + 5, countdownTarget.getSeconds());
localStorage.setItem('countdownTarget', countdownTarget);
}
$('#defaultCountdown').countdown({ until : countdownTarget, format: 'MS', compact: true});
Je gardais la date actuelle + 5 minutes au navigateur de stockage local countdownTarget (seulement si elle n'a pas été fait avant). Et si un utilisateur actualise la page, l'heure doit être persistante. Mais il y a un problème. Quand je charge la page pour la première fois, le temps compte à partir de 5 minutes (ce qui devrait être normal), mais quand j'essaye de le rafraîchir à nouveau, il commence à compter à partir de 36 minutes et je ne sais pas pourquoi et je ne sais pas d'où viennent ces 36 minutes.
D'où viennent les 36 minutes? Impossible de voir quelque chose comme ça dans votre exemple de code. –
vous ne voulez probablement pas faire d'ombre countdownTarget si null en disant var = – aw04
Je suis assez sûr que localStorage stocke des données en tant que chaînes. Si vous chargez la chaîne stockée depuis localStorage et que vous l'ajoutez ensuite à un int, vous n'obtiendrez pas le résultat attendu. Vous devez convertir cette chaîne stockée en int avant de l'ajouter à votre compteur. – Korgrue