Я написал веб-приложение, которое сильно зависит от таймеров, работающих в фоновых вкладках.В более поздних браузерах Chrome (> Chrome 57) по умолчанию используется опция регулирования «дорогих» таймеров в фоновом режиме - я понимаю, что эту функцию можно отключить в chrome://flags/
, но я хочу избегатьпросить пользователей сделать это.Пример таймера, который использует JQuery / JS и обновляет каждую секунду:
function startTimer(seconds) {
var timer = seconds - 1;
var refresh = setInterval(function() { // refresh every second
var output = displaySeconds(timer); // displaySeconds formats the time
$("#timer").text(output);
$("title").html(output + " - Timer");
if (--timer < 0) {
clearInterval(refresh); // exit refresh loop
};
}, 1000);
Часто этот таймер сильно нарушается браузером и длится примерно на 50% дольше, чем параметр seconds
, указанный в качестве ввода,Я также минимизировал JS, но понимаю, что это только действительно уменьшает размер файла, поэтому не помогает.
Каков разумный и независимый от браузера способ оптимизировать его для бесперебойной работы в фоновом режиме?
У меня есть идеи: - Узнайте, когда вкладка находится в фоновом режиме, с помощью некоторой соответствующей библиотеки, уменьшите частоту обновления до чего-то более грубого (2 или 3 секунды) - хотя кажется сложным!
Спасибо взаранее