Open2
SSGとISRを簡易的にまとめてみた
SSG(静的サイトジェネレーション)
概要
SSGとはビルドのタイミングであらかじめHTMLレンダリングを行ったものをCDN経由でクライアントに配信する機構。
尚、外部データフェッチなどはビルドのタイミングで行われ、クライアントサイドでのデータ取得は想定していない。
メリット
- ユーザーからのリクエストで既にレンダリングされているHTMLを配信するだけなので全レンダリング機構(CSR、SSRなど)中で最も速くユーザーに配信できる。
デメリット
- 大容量データ及び外部データフェッチが多い場合、ビルド時間が大きくなる。(巨大なサイトなど)
- 動的に変化するデータを取り扱う場合は更新ができない。(ビルドのタイミングのみデータフェッチするから)
デメリットへの対応策
大きな二つのデメリットに対する対応としてFallback機能の利用とISRを採用する方法があります。
Fallback機能
大量データコンテンツに対する長時間ビルドを解消する機能
Fallback = True (CSRっぽくなる)
指定した特定のURL Pathに対してリクエストされた時に、データのないHTML RendingされたページをResponseした後、クライアント側でデータを取得しそのデータを含めたHTMLが表示されます。
更にこれが行われた際にはサーバー側でも同様に裏で最新データを取得し再レンダリングされたものがCDNに配置され最新化されます。
Fallback Blocking (SSRっぽくなる)
指定した特定のURL Pathに対してリクエストされた時に、サーバーサイドでデータフェッチを行いHTMLレンダリングしたものクライアントにResponseします。