Що таке ISR і яку проблему він вирішує?
ISR (Incremental Static Regeneration) - це механізм, який дозволяє оновлювати статичні сторінки після білда, без повного перезбирання застосунку.
Коротко:
SSG + автооновлення контенту = ISR
Яку проблему вирішує ISR
Проблема SSG
При класичному SSG:
- сторінки генеруються один раз
- щоб оновити контент -> потрібен новий білд
- при великому сайті (1000+ сторінок) це:
- довго
- дорого
- незручно
ISR прибирає залежність від повного ребілда.
Як працює ISR
На прикладі Next.js:
- Сторінка генерується статично
- Користувачі отримують HTML з CDN
- Минає заданий час (
revalidate) - Наступний запит:
- користувач отримує стару сторінку
- у фоні генерується нова версія
- Нова версія кешується і використовується далі
Без даунтайму. Без очікування.
У чому магія ISR
- швидкість як у SSG
- дані оновлюються автоматично
- сервер не рендерить сторінку на кожен запит
- дешевше, ніж SSR
Коли використовувати ISR
- блоги
- каталоги товарів
- маркетплейси
- курси і статті
- сторінки з періодичним оновленням даних
Контент змінюється, але не щосекунди.
Коли ISR НЕ потрібен
- персоналізовані дані
- контент залежить від cookies / auth
- realtime (чати, торги)
Там краще SSR або CSR.
Приклад (концептуально)
ts
fetch('https://api.example.com/posts', {
next: { revalidate: 60 } // оновлювати раз на хвилину
})- 60 секунд - припустима «застарілість» даних
- після цього Next.js оновить сторінку автоматично
ISR vs SSG vs SSR (дуже коротко)
| SSG | ISR | SSR | |
|---|---|---|---|
| HTML готовий заздалегідь | Так | Так | Ні |
| Оновлення без білда | Ні | Так | Так |
| Швидкість | Дуже висока | Дуже висока | Висока |
| Навантаження на сервер | Відсутнє | Низьке | Високе |
Відповідь для співбесіди
ISR - це механізм Next.js, який дозволяє оновлювати статичні сторінки після білда без повного перезбирання застосунку, зберігаючи швидкість SSG і актуальність даних.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.