Является ли проверка поддержки формата webp в браузере хорошим способом определить, можно ли использовать этот формат изображений на веб-сайте?

Какие есть альтернативы использованию скрипта для проверки поддержки формата WebP изображений в браузере? Есть ли более элегантные и надежные методы определения поддержки WebP? Как можно улучшить данное решение?
  • 22 декабря 2023 г. 8:47
Ответы на вопрос 2
Проверка поддержки формата WebP в браузере через проверку объекта `Image` является одним из распространенных способов определения возможности использования этого формата изображений на веб-сайте. Однако, необходимо учитывать, что данная проверка не всегда является 100% надежной. Некоторые браузеры могут поддерживать формат WebP, но отключать его по умолчанию или требовать дополнительные настройки. Кроме того, ранние версии некоторых браузеров не поддерживают WebP вообще.

Один из альтернативных способов определения поддержки WebP - использование флагов user agent. Некоторые браузеры в своем user agent содержат информацию о поддержке WebP. Например, в Chrome user agent можно искать строку "webp", аналогично для Opera.

Еще один способ - использование JavaScript и создание canvas элемента. Этот метод проверяет, может ли браузер создать и отобразить WebP изображение с помощью canvas элемента. 

Для улучшения данного решения можно сочетать несколько способов проверки поддержки WebP. Например, сначала можно использовать проверку поддержки через объект `Image`, затем проверять user agent, и в конечном итоге использовать создание canvas элемента. Такой подход может повысить надежность определения поддержки WebP.
плохое: это всего лишь проверка того, что fetch работает и картинка есть на сервере 

либо Content Negotiation на сервере при отдаче картинки, т.к. Safari только при запросе картинок, шлёт, что он поддерживает webp
либо загрузить через src в new Image() и у него ловить load или error

я бы пошёл по первому пути
Похожие вопросы