SessionStorage和重新加载页面javascript

时间:2017-10-30 13:37:00

标签: javascript time session-storage

我试图将信息(计时器)保存在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);
},

但是当我重新加载页面时,计时器重置。 非常感谢:)

2 个答案:

答案 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);