1. トップページ
  2. SPA, SSR, SSGなどJavaScriptのフレームワークで使用されている略語の意味を調べる

SPA, SSR, SSGなどJavaScriptのフレームワークで使用されている略語の意味を調べる

React.jsVue.js など JavaScriptのフレームワークの解説記事を見ていると、
SPA, SSR, SSGなど見慣れない英単語をよく見かけます。

意味がイマイチ理解できず不安だったため、
いくつかの解説記事を確認してブログの記事としてまとめることにしました。

調査時に参考にさせていただいたページがありますので、
ページ下の「参考にさせていただいたページ」にリンクを貼りました。

CSR (Client Side Rendering)

クライアント(ブラウザ側)で演算やレンダリングを行います。
JavaScriptのコード量が増えれば増えるほど処理に時間がかかり、
サーバーからのダウンロードにも時間がかかるため、
大規模なアプリケーションとなると、ページがなかなか表示されない問題が発生します。

SSR (Server Side Rendering)

サーバー上でHTMLを作成し、クライアントに返却します。
ユーザーからのリクエストごとにサーバー側で演算やレンダリングを行うため、
クライアント側の負荷は減らせますが、サーバー側の負担が増えます。

SPA (Single Page Application)

レンダリングの手法ではなく概念となります。CSR と基本的な仕組みは同じで、
必要なデータを json で取得し、ページの一部をクライアント側で書き換えることで
ネイティブアプリのような高速な動作が実現可能です。

SSG (Static Site Generation) 

あらかじめレンダリング済みのデータをビルドしておき、
ユーザーからのリクエスト時にHTMLを返却する手法です。

サーバー側はリクエスト時にHTMLを返却だけ行えばよいため、
余計な処理が行われず、表示が高速になります。
アプリケーションサーバーではなく、CDN から配信を行うことで更に高速な表示が可能です。

JavaScriptのフレームワークの Nuxt.jsNext.js にはこの機能が実装されています。

ISR (Incremental Static Regeneration)

SSG に自動更新機能を加えた手法です。
一定時間ごとにバックグラウンドでデータの再取得、
ページの再レンダリングを行い、HTML を再生成 (regenerate) します。

SSG はコンテンツの更新を反映させるために、
アプリ全体の再ビルドが必要なのに対し、
ISR はバックグラウンドでデータの更新を行うため、
アプリ全体の再ビルドが不要となります。

Next.js 9.4 から導入された実験的な新機能であり、Vercelにデプロイすることで利用できます。

まとめ

小難しい印象がありましたが、実際にまとめてみるとそれほど難しくはない概念でした。
記事にすることでより深く理解できました。

参考にさせていただいたページ