Open2

【n番煎じ】Next.jsのSSR / SSG / ISRについて整理する

ヲータケヒデナヲヲータケヒデナヲ

CSR(Client Side Rendering)

言わずもがな、Javascriptを用いたWebアプリ開発では、レスポンス速度などのパフォーマンスが重要。
従来、JavascriptはHTMLファイル内における<script>タグの内側にコードを記述し、ブラウザで動作させることがほとんどだった。
Javascriptによるアプリケーション開発では、クライアントでレンダリング(描画)することは極めて自然なことである。
2021年現在、人気のJavascriptライブラリであるReactやVueなども、基本的にはクライアントサイドでレンダリングする。

クライアントサイドでレンダリングでは、アプリケーション自体の肥大化に伴い、クライアント側でのJavascriptの処理量が自ずと増えてしまうという問題がある。

ヲータケヒデナヲヲータケヒデナヲ

SSR(Server Side Rendering)

CSRで起きる「ページの肥大化に伴い、 「大量のJavascriptをクライアントに送信する」という問題を解決するために、サーバーサイドレンダリングという方式が考案されるようになる。
これは、ページのロジックとレンダリングを、サーバー上で行い、サーバー上で生成されたHTMLをクライアントに返却・描画するという方法。これにより「大量のJavascriptを送信する」という問題を解消できるようになった。
しかし、サーバーサイドレンダリングであっても、ユーザーからのアクセスをサーバー側で処理するたびに発生する負荷は避けられないという問題がある。