DSG(Deferred Static Generation)の使いどころは?

Gatsby v4にアップグレードに伴い、新たにDSGというレンダリングオプションが追加されました。本記事では「DSGは何なのか」「どういった用途で使用すべきか」を紹介します。

DSGは、Gatsbyのv3 → v4のアップグレードで新たに追加されたレンダリングオプションです。 状況によってはDSGを使ったほうが良いというケースもあります。それではさっそく紹介します。

DSGとは?

Deferred Static Generationを和訳すると「静的生成を遅らせる」。

DSGはSSGを改良版のようなものなので、まずはGatsbyの従来のレンダリング手法のSSG(Static Site Generation)の特徴をお話します。SSGはプログラムのビルド時に表示するページを生成します。アクセスしたユーザの表示が高速になる利点がある反面、ページが増えるとビルドに膨大な時間がかかるといった欠点がありました。DSGは、ビルド時に生成するページを選択できます(例えば、人気のあるページのみなどのみを生成)。 それでは選択されなかった可哀そうなページはどうなるか? 誰かがそのページにアクセスした際にビルドされます。具体的には、そのページの初回訪問者はビルド時間を含めるの表示は遅くなりますが、2回目以降の訪問者はすでにページが存在するため高速に表示されるということです。 それがDSG(静的生成を遅らせる)の機能となります。

DSGを使うべき場合

多数の記事を所有するブロガーやニュースサイトはDSGに変更する価値があります。 例えばあなたが5000記事を所有するサイト管理者だとします。5000記事のうち。1000記事はアクセスが月に10~20回程度のサブコンテンツだが、記事は削除せずに生かしたい。けどビルド時間は削りたい。といった際に適しています。

もしくは、ニュースなどのホットな記事を即座に更新した場合も適しています。

DSGを使わないほうが良い場合

ページ数10ページ程度のサイトの場合は使用しなくてよいでしょう。 DSGは、ホスティングサーバと別に、適宜ページを作成するためのサーバが必要になります。

まとめ

ビルド時間がだんだん長くなってきたなー、、、という方は一度試してみてはいかがでしょうか。

参考:https://www.gatsbyjs.com/docs/how-to/rendering-options/using-deferred-static-generation/

Tags