首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sessionStorage注册

sessionStorage注册
EN

Stack Overflow用户
提问于 2018-02-05 23:41:02
回答 1查看 52关注 0票数 0

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

我不明白为什么我的计时器仍然继续运行,而“分钟”和“秒”=== 0秒的事情,如果我重新加载我的计时器离开的页面。

代码语言:javascript
复制
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);
EN

回答 1

Stack Overflow用户

发布于 2018-02-05 23:45:21

在这些区块中

代码语言:javascript
复制
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,并且永远不会调用clearInterval(interval);

在您的第一个if块中添加此验证

代码语言:javascript
复制
if ((minutes > 0) && (secondes === 0)) {
    minutes--;
    secondes = 59;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48626167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档