sessionStorage注册

时间:2018-02-05 15:41:02

标签: javascript session-storage

我在脚本上遇到了一些问题

我无法理解为什么我的计时器仍在继续“分钟”和“secondes”=== 0 第二件事,如果我正在重新加载我的计时器页面。

let get_sec = sessionStorage.getItem('sec_storage');
let get_min = sessionStorage.getItem('min_storage');

if (!get_sec && !get_min){
    //Sessionstorage vide
    secondes = 10;
    minutes = 0;
}
let interval = setInterval(function () {
    secondes--;
    sessionStorage.setItem('sec_storage', get_sec);
    sessionStorage.setItem('min_storage', get_min);
    $('#count-timer').text('Expiration in : ' + minutes + ' minutes ' + secondes + ' secondes ');
    if (secondes === 0) {
        minutes--;
        secondes = 59;
    }
    if(minutes <= 0 && secondes <= 0){
        clearInterval(interval);
        sessionStorage.removeItem('sec_storage');
        sessionStorage.removeItem('min_storage');
        $('#count-timer').text('Sorry, reservation expired');
    }
}, 1000);

1 个答案:

答案 0 :(得分:1)

在这些块中

if (secondes === 0) {
    minutes--;
    secondes = 59;
}
if(minutes <= 0 && secondes <= 0){
    clearInterval(interval);
    sessionStorage.removeItem('sec_storage');
    sessionStorage.removeItem('min_storage');
    $('#count-timer').text('Sorry, reservation expired');
}

如果secondes值为=== 0,则将其更改为59.因此,在您的上一个if中,secondes永远不会低于0且{{1}永远不会被称为

在您的第一个clearInterval(interval);区块中添加此验证

if