Сделайте setInterval или аналогичную пользовательскую функцию для выполнения, даже если браузер переходит в спящий режим - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть приложение Angular 7 с авторизацией на основе JWT. В API время проверки токена установлено на 30 мин. После загрузки приложения я использую обычный setInterval каждые 20 минут, чтобы получить токен fre sh с сервера, чтобы сеанс можно было продолжить.

setInterval(() => {
  this.reAuthenticate(true);
}, 60000 * 20);

Я знаю, что интервалы в JS имеют тенденцию к перекосу, однако кажется, что через некоторое время обратный вызов просто прекращает выполнение. Я предполагаю, что браузер зависает сценарий, если вкладка не фокусируется в течение некоторого времени.

Я пытался использовать сервисный работник, чтобы обойти это, и это не сработало. Вероятно, этот вопрос задавался миллион раз - но что мне делать в таких случаях? Я даже готов попробовать использовать решения exoti c (IMHO), такие как веб-сокеты, но это кажется излишним для такого простого действия.

...