SetTimeout + SetInterval ведут себя непоследовательно в In Innative Tab on ChromeJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 SetTimeout + SetInterval ведут себя непоследовательно в In Innative Tab on Chrome

Сообщение Anonymous »

Я пытаюсь реализовать простое поведение, когда функция начинает работать неоднократно после задержки после того, как пользователь покинет вкладку браузера (то есть переключается на другую вкладку). Например: < /p>
Через 3 секунды вкладки неактивна, < /p>
Начало Toggling Tab SetInterval начинает переключаться, < /p>
Затем он непредсказуемо сдерживается - иногда после нескольких итераций (например, 18 переключателей), затем возобновляется позже или полностью останавливается на некоторое время. < /p>

Код: Выделить всё

window.addEventListener("blur", () => {
const delayBeforeStart = 10000;
const blinkInterval = 2000;

const originalTitle = document.title;
const alternateTitle = "Come back!";

let intervalId = null;

const timeoutId = setTimeout(() => {
if (document.hidden) {
intervalId = setInterval(() => {
document.title = document.title === originalTitle ? alternateTitle : originalTitle;
}, blinkInterval);
}
}, delayBeforeStart);

window.addEventListener("focus", () => {
clearTimeout(timeoutId);
if (intervalId) {
clearInterval(intervalId);
intervalId = null;
document.title = originalTitle;
}
});
});

работает гладко в Firefox.
В Chrome интервал часто запускается или даже останавливается полностью после некоторого времени, когда вкладка на заднем плане.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... -on-chrome
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»