Тема: clearInterval не працює у Firefox
Доброго дня,
вивчаю JS, вигадую собі нескладні задачі, щоб практикуватись, але зіткнувся з незрозумілою ситуацією.
Задум: при завантаженні сторінки певна функція (metronom) виконується кожні N секунд. Коли перейдемо на іншу вкладку браузера, функція перестає виконуватись. Коли повертаємось на вкладку - вона знову виконується, кожні N сек.
var timer;
function execute() {
var date = new Date();
console.log( date.getMinutes() + ' : ' + date.getSeconds() );
}
function metronom() {
execute();
timer=setInterval(execute,3000);
}
window.onfocus = function () {
metronom();
}
window.onblur = function () {
clearInterval(timer);
delete timer; // пробую власноручно видалити timer, не допомагає
console.log("sleep...");
}
window.onload = function() {
metronom();
}
Результат мав би бути таким:
32:26
32:29
32:32 // покидаю вкладку на 10 секунд
sleep...
32:42 // повертаюсь
32:45
І все працює, у Хромі та Опері. Але не у Файрфоксі 60. Там функція metronom продовжує виконуватись, коли вкладка неактивна:
32:26
32:29
32:32 // покидаю вкладку на 10 секунд
32:35 // цього бути не повинно
32:38 // цього бути не повинно
32:41 // цього бути не повинно
32:42 // повертаюсь
32:44 // ще й спрацьовує частіше ніж звично.
Я так розумію, не спрацьовує clearInterval, навіть якщо його власноруч видалити. Тому функція виконується "в фоні".
Гуглив, не знайшов якихось особливих взаємин між Firefox i clearInterval.
Підкажіть, будь ласка, де шукати причину, і що гуглити.
Дякую.