Невозможно запустить код , когда вкладка закрыта или аппарат выключен.Лучшее, что вы можете сделать, - это периодически сохранять информацию в localStorage
, а затем всякий раз, когда сценарий запускается снова, извлекать сохраненную информацию из localStorage
и выполнять все вычисления, необходимые для обновления.Или, если она проста, как дата, вы можете просто проверять Date.now()
каждый раз, когда вкладка открывается.
Вот очень упрощенная реализация:
const info = localStorage.savedInfo
? JSON.parse(localStorage.savedInfo)
: { count: 0, date: Date.now() };
const now = Date.now();
if (info.date < now) {
info.count += Math.floor((now - info.date) / 1000);
info.date = now;
}
function tick() {
info.count++;
console.log(info.count);
info.date = Date.now();
localStorage.savedInfo = JSON.stringify(info);
setTimeout(tick, 1000);
}
tick();
https://jsfiddle.net/gn9128ea/1/