なぜ理解を深めるべきだと思ったか
現代のwebフレームワークにおいて、この理解を深めることは開発をする上での作るもののを性能を底上げするものに繋がると考えた。
CSR(クライアントサイドレンダリング)
ブラウザ側でレンダリングする方法の事。
クライアント側で処理する量を増やしてしまうとユーザーにページを表示させるのが遅くなってしまう。(デバイスに依存してしまう)
SSR(サーバーサイドレンダリング)
サーバー側で処理を行い、HTMLを構築してクライアント側に返す方式の事。
これはCSRのようにクライアント(デバイス)に依存しないため、ハイスペックなサーバーでHTMLを構築することができる。
しかし、サーバーで処理を行って、HTMLを構築してユーザー側に表示させるため、待たせる時間が長くなる。
SSG(静的サイトジェネレーション)
ビルド時にすでにHTMLを構築しておくことによってユーザーからのリクエストがあっても事前に用意しているHTMLを返す。
CDNにキャッシュしておくことによって高速なページ表示が可能になる。
しかし、かなり巨大なECサイトのようなものの場合にビルド時にすべてのデータを取ってきてHTMLを構築しておくことはかなり難しい。
リソースの更新が頻繁な場合もSSGだと変化後の状態を見れない。(ビルド時にしかデータフェッチをしていないから)
ISR(Incremental Static Regeneration)
一定期間ごとにサーバーサイドレンダリングを行うことによって、高速なページ描画を実現できるようになり、表示されるデータの更新頻度が高くても新しいデータを表示させることができる。
常に最新の情報が届けられるわけではない。