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

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

Милица Михайлия
Milica Mihajlija

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

  • Не авторство
  • Обслуживается сторонними серверами

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

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

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

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

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

Сеть

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

Сторонние скрипты часто увеличивают нагрузку на сеть, например:

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

Рендеринг

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

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

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

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

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

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