Я пытаюсь сделать обратный отсчет, который не перезапускается после обновления этой страницы. Я использую обратный отсчет времени кетов. Я хочу пересчитать до 5 минут.Обратный отсчет Javascript, который сохраняется на странице обновления
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 минут.
Откуда берутся 36 минут? Не вижу ничего подобного в примере кода. –
вы, вероятно, не хотите теневать CountdownTarget, если null, произнеся var = – aw04
Я уверен, что localStorage хранит данные как строки. Если вы загружаете сохраненную строку из localStorage и затем добавляете ее в int, вы не получите ожидаемого результата. Вам необходимо преобразовать эту сохраненную строку обратно в int, прежде чем добавлять ее в свой счетчик. – Korgrue