Отложенная загрузка сторонних ресурсов с помощью фасадов

Published on

Translated to: English, Español, Português, 한국어, 中文, 日本語

Сторонние ресурсы часто используются для показа рекламы или видео и интеграции с социальными сетями. По умолчанию сторонние ресурсы загружаются сразу после загрузки страницы, однако такой подход может излишне ее замедлить. Если сторонний контент не критичен, затраты на производительность можно снизить за счет отложенной загрузки.

Этот аудит выявляет сторонние встраиваемые файлы, для которых можно выполнить отложенную загрузку при взаимодействии. В этом случае вместо стороннего контента используется фасад до тех пор, пока пользователь не начнет с ним взаимодействовать.

Key Term

Фасад — это статический элемент, который выглядит как реальный встроенный объект, при этом не работает и, следовательно, существенно снижает нагрузку на страницу.

Пример загрузки встроенного плеера YouTube с фасадом. Фасад весит 3 КБ, а плеер размером 540 КБ загружается при взаимодействии.
Загрузка встроенного плеера YouTube с фасадом.

Как Lighthouse обнаруживает сторонние встраиваемые объекты, допускающие отложенную загрузку

Lighthouse ищет сторонние продукты, которые можно отложить, такие как виджеты социальных сетей или встраиваемые видео (например, встроенный проигрыватель YouTube).

Данные о продуктах, допускающих отложенную загрузку, и доступных фасадах хранятся в модуле third-party-web.

Аудит завершится ошибкой, если страница загружает ресурсы, относящиеся к одному из этих сторонних встраиваемых объектов.

Аудит фасада сторонних ресурсов Lighthouse, выделяющий встроенный проигрыватель Vimeo и живой чат Drift.
Аудит фасада сторонних ресурсов Lighthouse.

Как отложить загрузку сторонних ресурсов при помощи фасада

Вместо того, чтобы добавлять сторонние встраиваемые объекты непосредственно в свой HTML, загрузите страницу со статическим элементом, который имитирует реальный встроенный сторонний элемент. Схема взаимодействия должна выглядеть примерно так:

  1. При загрузке: добавляем фасад на страницу.

  2. При наведении указателя мыши: фасад предварительно подключается к сторонним ресурсам.

  3. При нажатии: фасад заменяется сторонним продуктом.

Рекомендуемые фасады

В целом, для встраиваемых видео, виджетов социальных кнопок и чатов можно использовать шаблон фасада. В приведенном ниже списке представлены наши рекомендации по фасадам с открытым исходным кодом. При выборе фасада учитывайте баланс между его размером и набором функций. Вы также можете использовать загрузчик iframe по требованию, например vb/lazyframe.

Встроенный проигрыватель YouTube

Встроенный проигрыватель Vimeo

Живые чаты (Intercom, Drift, Help Scout, Facebook Messenger)

Caution

При отложенной загрузке сторонних ресурсов с использованием фасадов есть некоторые минусы, поскольку фасады не обладают полноценным функционалом реальных встраиваемых объектов. Например, на облачке Drift Live Chat есть значок, показывающий количество новых сообщений. Если облачко чата замещается фасадом, оно появляется, только когда загружается фактический виджет чата после того, как браузер запустит requestIdleCallback. Для встраиваемых видео автовоспроизведение может работать некорректно при отложенной загрузке.

Написание собственного фасада

Вы можете создать индивидуальное фасадное решение, в котором будет применяться описанный выше паттерн взаимодействия. Фасад должен быть значительно меньше по сравнению с откладываемым сторонним продуктом и содержать только код, имитирующий внешний вид продукта.

Если вы хотите, чтобы ваше решение было включено в список выше, ознакомьтесь с процедурой заявки.

Ресурсы

Исходный код для аудита отложенной загрузки сторонних ресурсов с использованием фасадов.

Published on Improve article

This site uses cookies to deliver and enhance the quality of its services and to analyze traffic. If you agree, cookies are also used to serve advertising and to personalize the content and advertisements that you see. Learn more about our use of cookies.