TGViewer
Sleepless tech | Евгений J Sleepless tech | Евгений J @five_a_m · 758 subscribers
Post #347 709
С чего начать оптимизацию перфоманса? (часть 1)

1. HTML:
- минификация
- потоковая отрисовка (помогает уменьшить TTFB (time to first byte))

Статья про обработку html сервис воркерами: https://philipwalton.com/articles/smaller-html-payloads-with-service-workers/

2. CSS:
- минификация
- критический css:
заинлайнить в html
<head> <style /> </head>
потому что пока не пришел ответ со стилями, браузер не начнет отрисовывать render tree
- загрузка не блокирующая рендер (хак: использовать
<link href... media="print" onload="this.media='all'" - будет грузить стили, но т к медиа - print, не будет блокироваться рендер, а как загрузится, проставляем ему медиа - all (стили начинают применяться к рендеру))

Посмотреть размер неиспользуемого css можно в devtools -> coverage

Полезные плагины для webpack:
- html-critical-webpack-plugin
- critters-webpack-plugin

Статья про блокирующий CSS https://timkadlec.com/remembers/2020-02-13-when-css-blocks/

3. Шрифты

- предзагружаем через link rel=preload
- указываем системный fallback шрифт
- кеширование
- используем font-display (swap или fallback)

4. Картинки
Статья https://evilmartians.com/chronicles/images-done-right-web-graphics-good-to-the-last-byte-optimization-techniques

5. JS
загрузка и исполнение js может блокировать парсинг html
долгое исполнение js делает сайт не отзывчивым

- использовать async или defer аттрибуты
Теперь кстати парсинг html не блокируется при загрузке скриптов https://v8.dev/blog/v8-release-78

Уменьшаем размер
- минификация
- удаление ненужного:
dead-code elimination при помощи terser и env vars
- code splitting
devtools -> coverage посмотреть что нужно сразу после загрузки
https://webpack.js.org/guides/code-splitting/
обратить внимание на дудепликацию зависимостей

После code splitting возможно, что какой то функционал будет подгружаться динамически и где-то это может быть неприемлемо. Для этого нужно делать предзагрузку с preload/prefetch/preconnect/prerender/modulepreload.
Philipwalton Smaller HTML Payloads with Service Workers Thoughts on web development, open source, software architecture, and the future.
More from @five_a_m
  1. Oct 4, 2026Билет улетает @jack2tyler Поздравляю! 🎉
  2. Sep 30, 2026👨‍💻 Фронтенд с AI: что можно делегировать агентам 1 - 2 раза в год хожу на Podlodka Fron…
  3. Sep 27, 2026Как развлекаться с мелким)
  4. Sep 22, 2026Поискал облачных провайдеров которые, так сказать под крылом Р К Н. Justhost и vdsina отва…
  5. Sep 22, 2026Когда понимаешь, что выборы прошли успешно 😊
  6. Sep 15, 2026Чисто мои мысли когда общаюсь с ИИ
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →