Обновить ответ (на основе комментариев к ответу):
В целом оба подхода дадут одинаковый выигрыш в производительности. Какой из двух вариантов лучше, зависит от вашей ситуации (подробно описано ниже):
- Подход №1 (тег ‹picture›)
Преимущество использования тегов ‹picture› в том, что никаких изменений на стороне сервера не требуется. Итак, в настройках, где изменение конфигурации сервера / CDN является проблемой - это должно помочь.
Проблема с этим подходом заключается в необходимости обновления существующего кода. Итак, для сайтов с большим количеством существующих страниц это может быть обременительно.
- Подход № 2 (изменение формата изображения, доставляемого на основе заголовков http)
Основное преимущество этого подхода - отсутствие изменения кода в вашем HTML.
При таком подходе следует соблюдать осторожность: вы должны быть уверены, что ваша серверная среда и CDN поддерживают доставку различных форматов изображений на основе HTTP-заголовка.
С точки зрения производительности - между двумя подходами нет разницы. Дополнительный процессор, потребляемый на стороне сервера для обнаружения заголовка и соответствующего ответа, обычно минимален.
Для получения дополнительной информации посетите https://www.tezify.com/how-to/using_webp_images/
Исходный ответ:
Подход №1 (использование элемента) имеет больший смысл. В первую очередь потому, что по мере улучшения браузером поддержки webp новые браузеры будут загружать изображения webp.
В случае подхода № 2 (с использованием обнаружения на стороне сервера через строку агента-пользователя) вам либо придется обновить код обнаружения, либо улучшенная поддержка webp не отразится на вашем решении для загрузки изображений.
person
Punit S
schedule
29.11.2018