PassFront
  1. PassFront
  2. База знаний
  3. Производительность в JS

Сравни подходы для оптимизации загрузки сайта и объясни, когда какой подход выбрать.

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

Загрузку сайта оптимизируют по нескольким направлениям: уменьшение и разбиение бандла, оптимизация ресурсов, кеширование, стратегии загрузки и рендеринга. Выбор зависит от узкого места.

Направления и подходы

JavaScript

  • Code splitting — разбить бандл, грузить по маршрутам.
  • Lazy loading — ленивая загрузка компонентов/модулей.
  • Tree shaking — убрать неиспользуемый код.
  • `async`/`defer` для скриптов.

Ресурсы

  • Оптимизация изображений — сжатие, WebP/AVIF, srcset, lazy-load.
  • Минификация JS/CSS, сжатие (gzip/brotli).
  • Шрифты — font-display: swap, подмножества.

Сеть и кеш

  • CDN — раздача ближе к пользователю.
  • Кеширование — HTTP-заголовки, Service Worker.
  • Preload/prefetch/preconnect — приоритизация критичных ресурсов.
  • HTTP/2–3 — мультиплексирование.

Рендеринг

  • SSR/SSG — быстрый первый показ и SEO.
  • Critical CSS — инлайн критичных стилей.

Как выбирать

  • Большой JS → code splitting + lazy load.
  • Тяжёлые картинки → оптимизация изображений.
  • Медленный первый показ/SEO → SSR/SSG + critical CSS.
  • Повторные визиты → кеширование + CDN.

Сначала измеряют (Lighthouse, WebPageTest), потом оптимизируют узкое место.

Коротко для собеседования

Оптимизация загрузки: JS (code splitting, lazy load, tree shaking), ресурсы (сжатие изображений, минификация, шрифты), сеть (CDN, кеш, preload, HTTP/2-3), рендеринг (SSR/SSG, critical CSS). Выбор — по узкому месту, найденному измерением (Lighthouse).

Другие вопросы раздела