Гарри Робертс поделился коротким видео, в котором рассказал о разработке библиотеки с открытым исходным кодом Obs.js. Слоган библиотеки — контекстно-зависимая производительность для всех.
Context-aware web performance for everyone
Obs.js подключается к странице и использует различные API для определения текущих возможностей устройства: качество соединения, сетевую задержку, состояние батареи, заряжается ли устройство, доступную память и CPU.
В результате объект
window.obs заполняется соответствующей информацией, а на <html> добавляются классы вида .has-bandwidth-high, .has-battery-charging, .has-cpu-high, .has-latency-medium и другие.Если у пользователя слабое соединение, мало батареи или включен режим экономии трафика, можно загружать картинки худшего качества, не загружать видео, уменьшить количество анимации и скрыть некоторые блоки.
Подход Obs.js похож на некогда популярную библиотеку Modernizr, но направлен на определение функций производительности. Есть демо-страница, на которой можно проверить своё устройство.
#js #performance