Производительность стороннего JavaScript

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

Сторонний JavaScript обычно относится к скриптам, встроенным в ваш веб-сайт, которые:

  • Автор не ваш
  • Обслуживается со сторонних серверов

Сайты используют эти скрипты для различных целей, в том числе:

  • Кнопки социальных сетей
  • Встраивание видеоплеера
  • Чат-сервисы
  • Рекламные фреймы
  • Скрипты аналитики и метрик
  • Скрипты A/B-тестирования для экспериментов
  • Вспомогательные библиотеки (например, форматирование даты, анимация и функциональные библиотеки)

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

Производительность

Любой значительный объем JavaScript может замедлить производительность . Но поскольку сторонний JavaScript обычно находится вне вашего контроля, это может вызвать дополнительные проблемы.

Сеть

Настройка соединений требует времени, а отправка слишком большого количества запросов на несколько серверов приводит к замедлению работы. Это время еще больше для безопасных соединений, которые могут включать в себя поиск DNS, перенаправление и несколько обращений к конечному серверу, который обрабатывает запрос пользователя.

Сторонние сценарии часто увеличивают нагрузку на сеть из-за таких вещей, как:

  • Запуск дополнительных сетевых запросов
  • Использование неоптимизированных изображений и видео
  • Недостаточное HTTP-кэширование , что приводит к частой загрузке сетевых ресурсов.
  • Недостаточное сжатие ресурсов сервера
  • Несколько экземпляров фреймворков и библиотек, добавленных различными сторонними встраиваниями.

Рендеринг

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

Если у третьей стороны возникают проблемы с сервером и она не может доставить ресурс, рендеринг блокируется до тех пор, пока не истечет время запроса, которое может составлять от 10 до 80 секунд. Вы можете протестировать и смоделировать эту проблему с помощью тестов WebPageTest Single-Point-of-Failure .

Что с этим делать

Использование стороннего JavaScript часто неизбежно, но есть вещи, которые вы можете сделать, чтобы минимизировать негативные последствия:

  • При выборе сторонних ресурсов отдавайте предпочтение тем, которые отправляют наименьшее количество кода, но при этом предоставляют вам необходимую функциональность.
  • Используйте бюджеты производительности для стороннего контента, чтобы контролировать его расходы.
  • Не используйте одну и ту же функциональность от двух разных поставщиков. Вероятно, вам не нужны два менеджера тегов или две аналитические платформы.
  • Регулярно проверяйте и удаляйте лишние сторонние скрипты.

Чтобы узнать, как проверять сторонний контент и эффективно загружать его для повышения производительности и удобства пользователей, ознакомьтесь с другими публикациями в разделе «Оптимизация сторонних ресурсов» .