Open2

SSGとISRを簡易的にまとめてみた

Sux.MineSux.Mine

SSG(静的サイトジェネレーション)

概要

SSGとはビルドのタイミングであらかじめHTMLレンダリングを行ったものをCDN経由でクライアントに配信する機構。
尚、外部データフェッチなどはビルドのタイミングで行われ、クライアントサイドでのデータ取得は想定していない。

メリット

  • ユーザーからのリクエストで既にレンダリングされているHTMLを配信するだけなので全レンダリング機構(CSR、SSRなど)中で最も速くユーザーに配信できる。

デメリット

  • 大容量データ及び外部データフェッチが多い場合、ビルド時間が大きくなる。(巨大なサイトなど)
  • 動的に変化するデータを取り扱う場合は更新ができない。(ビルドのタイミングのみデータフェッチするから)
Sux.MineSux.Mine

デメリットへの対応策

大きな二つのデメリットに対する対応としてFallback機能の利用とISRを採用する方法があります。

Fallback機能

大量データコンテンツに対する長時間ビルドを解消する機能

Fallback = True (CSRっぽくなる)

指定した特定のURL Pathに対してリクエストされた時に、データのないHTML RendingされたページをResponseした後、クライアント側でデータを取得しそのデータを含めたHTMLが表示されます。
更にこれが行われた際にはサーバー側でも同様に裏で最新データを取得し再レンダリングされたものがCDNに配置され最新化されます。

Fallback Blocking (SSRっぽくなる)

指定した特定のURL Pathに対してリクエストされた時に、サーバーサイドでデータフェッチを行いHTMLレンダリングしたものクライアントにResponseします。