Incremental Static Regeneration: das Beste aus beiden Welten
Next.js 9.5 brachte ISR — statische Geschwindigkeit mit frischen Inhalten. Warum das verändert hat, wie ich Content-Seiten ausliefere.
Lange Zeit musste ich mich entscheiden: statisch oder dynamisch. Statische Seiten sind blitzschnell, aber bei jeder Inhaltsänderung muss die ganze Seite neu gebaut werden. Dynamische Seiten sind frisch, aber jeder Aufruf kostet Rechenzeit auf dem Server. Mit Next.js 9.5 ist diese Entscheidung im Sommer 2020 endlich vom Tisch.
Was ISR eigentlich tut
Incremental Static Regeneration baut eine Seite einmal statisch und liefert sie aus dem Cache aus — schnell wie eine reine HTML-Datei. Der Clou: Nach einem festgelegten Intervall baut Next.js die Seite im Hintergrund neu, sobald wieder jemand sie aufruft. Die ersten Besucher:innen sehen noch die alte Version, alle danach die frische.
export async function getStaticProps() {
const posts = await fetchPosts();
return {
props: { posts },
revalidate: 60, // höchstens alle 60 Sekunden neu bauen
};
}
Diese eine Zeile, revalidate, ist der ganze Zauber. Du musst nicht mehr die komplette
Seite neu deployen, nur weil sich ein Blogeintrag geändert hat.
Schnell und aktuell war früher ein Widerspruch. ISR macht daraus eine Konfiguration.
Warum mich das überzeugt
Ich baue viel für Ateliers, kleine Studios und Portfolios — Seiten, die selten, aber doch regelmäßig aktualisiert werden. Bisher hieß das: bei jeder Änderung ein voller Rebuild, der bei vielen Seiten Minuten dauern kann. Mit ISR aktualisiert sich nur die betroffene Seite, und das ohne, dass ich überhaupt etwas anstoße.
Für die Besucher:innen bedeutet das Ladezeiten wie bei einer reinen Static Site, für meine Kund:innen bedeutet es, dass ihre Inhalte ohne technische Hürde aktuell bleiben. Niemand muss auf einen Deploy warten.
Worauf ich achte
ISR ist kein Allheilmittel. Für hochdynamische Daten — Warenkörbe, Live-Preise — bleibt
serverseitiges Rendern die bessere Wahl. Und das revalidate-Intervall will mit Bedacht
gewählt sein: zu kurz, und du verschenkst den Cache-Vorteil; zu lang, und die Inhalte
fühlen sich abgestanden an.
Für die allermeisten Content-Seiten aber hat ISR meine Standardarchitektur verändert. Es ist eine dieser seltenen Funktionen, die ein altes Dilemma nicht umgeht, sondern auflöst — und das ist für mich die eleganteste Form von Fortschritt.