我试图将信息(计时器)保存在sessionStorage密钥中。 如果用户重新加载页面,我想保持计时器运行。
我试过这样的事情
var timer = 50;
sessionStorage.setItem('timer_station', timer);
var timer_data = sessionStorage.getItem('timer_station');
var interval = setInterval(function () {
timer_data--;
console.log(timer_data);
$('#count-timer').text(timer_data);
if (timer_data === 0) {
$('#count-timer').text('Désolé, votre réservation a expirée');
clearInterval(interval);
sessionStorage.clear();
}
}, 1000);
},
但是当我重新加载页面时,计时器重置。 非常感谢:)
答案 0 :(得分:2)
首先,我们需要处理他们以前没有来过的案例:
var timer = sessionStorage.getItem('timer_station');
if (!timer){
timer = 50
}
然后做我们的间隔,在我们离开的时候保留新的时间:
var interval = setInterval(function () {
timer--;
console.log(timer);
sessionStorage.setItem('timer_station', timer);
$('#count-timer').text(timer);
if (timer === 0) {
$('#count-timer').text('Désolé, votre réservation a expirée');
clearInterval(interval);
sessionStorage.clear();
}
}, 1000);
答案 1 :(得分:1)
这是因为您在每次重新加载时都设置了timer_station值。您想将setItem移动到if检查。有点像...
var interval = setInterval(function () {
if (isThereATimerStationAlreadySetCheck) {
//do stuff with it
} else {
//set it
}
}, 1000);