Вопрос проверяет понимание того, как ассеты влияют на скорость загрузки приложения и какие техники позволяют снизить их вес и нагрузку на браузер.
Оптимизация ассетов заключается в уменьшении их размера и загрузке только тогда, когда они реально нужны. Для изображений используют сжатие и современные форматы, для видео — кодеки и снижение разрешения, для SVG — очистку и упрощение структуры. Также важны lazy loading и code splitting. Грамотная оптимизация ассетов напрямую улучшает Core Web Vitals. Это базовый навык для production-фронтенда.
Ассеты часто составляют основную часть веса фронтенд-приложения, поэтому их оптимизация критична для производительности.
Изображения — самый частый источник лишнего трафика.
Основные подходы:
Использование современных форматов
WebP
AVIF
Они дают меньший размер при том же качестве.
Адаптивные изображения
разные размеры под разные экраны
загрузка минимально нужного разрешения
<img src="image.webp" loading="lazy" alt="example" />
Сжатие без потери качества
удаление metadata
снижение качества до визуально незаметного уровня
Видео особенно тяжёлые, поэтому требуют отдельного внимания:
Выбор кодека
H.264 для совместимости
VP9 / AV1 для меньшего размера
Снижение параметров
разрешение
FPS
битрейт
Отложенная загрузка
загрузка только при необходимости
использование poster
SVG часто выглядят лёгкими, но могут быть перегружены:
Очистка структуры
удаление metadata
объединение path
Отказ от сложных фильтров
filter
mask
clipPath
Анимации через CSS
вместо JavaScript
lazy loading ассетов
code splitting
кэширование через CDN
preloading только критичных ресурсов
Оптимизация ассетов — это системная работа: правильный формат, минимальный размер и загрузка в нужный момент. Без этого даже хорошо написанный код не спасёт производительность.