Ускорить медленную SSR-страницу
Вопрос
SSR-страница отдаётся 2 секунды, потому что ждёт три API. Как ускоришь?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Измерить: какой запрос медленный, TTFB, LCP
Запросы параллельно, а не последовательно
Стриминг: оболочка сразу, медленные блоки в Suspense
Кеш данных и страниц (ISR, CDN, кеш fetch), если данные не персональные
Некритичное перенести на клиент или подгружать позже
Таймауты и фолбэки, чтобы один медленный API не держал страницу
Что могут спросить следом
- Как кешировать персональную страницу?
- Как это отразится на SEO?
Разбор
Сначала измеряю: смотрю трейс сервера и Web Vitals, какой запрос медленный и выстроены ли они цепочкой. Часто запросы идут последовательно через await друг за другом, хотя не зависят друг от друга, тогда Promise.all сразу экономит время. Дальше стриминг: оболочка и важный контент уходят сразу, а медленный блок оборачиваю в Suspense со скелетоном. Если данные не персональные, кеширую: ISR, кеш на CDN или кеш запросов с тегами и ревалидацией. Некритичное, вроде рекомендаций, можно грузить на клиенте после гидрации. И ставлю таймауты с фолбэком, чтобы падение одного сервиса не делало всю страницу медленной.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.