В Google, как известно, уже некоторое время активно экспериментируют с Chrome на предмет выяснить степень влияния JavaScript в фоновых вкладках на производительность и энергопотребление браузера.
По результатам анализа «поведения» страниц ряда популярных сайтов в фоновых вкладках Chrome специалисты пришли к выводу, что значительную нагрузку дают так называемые таймеры JavaScript (на https://itvdn.com/ru/specialities/angular-dev подробнее о возможностях JavaScript, технологиях разработки современных веб-приложений и повышении профессионального уровня разработчика).
Как выяснилось, таймеры JavaScript непрерывно отслеживают целый ряд таких параметров страниц (взаимодействие с рекламой, изменения прокрутки и пр), которые пользователю особо и не нужны, но из-за них Chrome потребляет как бы лишнюю энергию.
То есть, расходует больше заряда аккумулятора смартфона, планшета или ноутбука.
В последней версии официальной версии Chrome частота срабатываний таймеров JavaScript ограничена 1 разом в секунду (60 раз в минуту).
И вот, в качестве очередного эксперимента решено было еще больше «подкрутить» ограничитель частоты срабатывания таймеров JavaScript в фоновых вкладках Chrome и посмотреть, как это скажется на уровне его энергопотребления. И, соответственно, на времени автономной работы мобильных девайсов, на которых он установлен.
Получилось следующее:
- Эксперимент 1: 36 популярных сайтов в фоновых вкладках, в активной вкладке — пустая страница (about:blank):
- стандартное ограничение таймеров JavaScript: среднее время разрядки — 6.4 часа;
- сокращенное количество срабатываний таймеров JavaScript: среднее время разрядки — 8.2 часа.
- Эксперимент 2: 36 популярных сайтов в фоновых вкладках, в активной вкладке — страница YouTube:
- стандартное ограничение таймеров JavaScript: среднее время разрядки — 4.7 часа;
- сокращенное количество срабатываний таймеров JavaScript: среднее время разрядки — 5.3 часа.
Как видим, разница весьма и весьма существенная. В этой связи также отметим, что упомянутый экспериментальный «ограничитель» JavaScript в Chrome в настоящее время так и называется — Throttle Javascript timers in background.
Согласно описанию функции, в активном режиме она ограничивает количество срабатываний таймеров DOM до 1 раза в минуту и автоматически включается на странице сайта, которая дольше 5 минут остается в скрытой (фоновой) вкладке Chrome.
как уменьшить частоту срабатываний таймеров JavaScript в фоновых вкладках Chrome
В обычном Chrome эта функция еще не доступна, но в Canary она уже есть (так что, должна появится и в 86-й версии официальной сборки для Windows, macOS, Linux, Android и Chrome OS).
Правда, доступна она пока только в скрытых настройках, потому по умолчанию отключена. Но процедура её активации стандартная:
- в адресной строке браузера пишем chrome://flags и жмем Enter;
- в строке поиска на странице экспериментальных настроек пишем throttle javascript
- включаем функцию Throttle Javascript timers in background (Enabled в меню рядом);
- перезапускаем браузер.
Ну и в завершение также добавим, что Google пока продолжает тестировать новую функцию и проверять, как она повлияет на функционал сайтов.
Известно также, что в случае успешной реализации данного нововведения, такой же «ограничитель», вероятнее всего, появится и у Microsoft Edge, Brave, Vivaldi и Opera (если разработчики не заблокируют его принудительно).