在页面刷新过程中持续存在的Javascript倒计时

时间:2017-01-06 18:23:25

标签: javascript jquery local-storage countdowntimer persistent

我正在尝试进行倒计时,刷新此页面后不会重新开始。我正在使用基斯伍德倒计时。我想数到5分钟。

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});

我将当前日期+ 5分钟保存到浏览器本地存储作为countdownTarget(仅当之前没有完成时)。如果用户刷新页面,则时间应该是持久的。但是有问题。当我第一次加载页面时,时间从5分钟开始计算(这应该是正常的),但是当我尝试再次刷新时,它从36分钟开始计数,我不知道为什么,我不知道这36分钟来自哪里。

1 个答案:

答案 0 :(得分:1)

为什么不增加会议记录,而不是重新宣布约会?你的代码对我有用。此外,您应该只启动一次countdownTarget

var countdownTarget = localStorage.getItem('countdownTarget');
if (countdownTarget === null) {
    countdownTarget = new Date();
    countdownTarget.setMinutes(countdownTarget.getMinutes() + 5);
    localStorage.setItem('countdownTarget', countdownTarget);
} else {
    countdownTarget = new Date(countdownTarget);
}
$('#defaultCountdown').countdown({ until : countdownTarget, format: 'MS', compact: true});