SPA・SSRについて

SPA

SPAとは「Single Page Application」の略
単一のページでコンテンツの切り替えを行うWeb アプリケーションのアーキテクチャ。
最初に、単一のページを読み込み、後はAPIで状態を取得してJSで差分を置き換える感じ

従来

Client ——— Server
基本サーバーへのHttpRequestで、差分が生じたら全ページ書き直し
→ ページを更新したい時には、毎回http通信してHTMLを返すので、1からレンダリングする読み込みに時間がかかる….

現在

Client ——- Server
初回のみHttpRequest
2回目以降は、AjaxによるAPI通信で、JSを利用した差分更新
→ 2回目以降は読み込みは差分更新なので速い!

メリット

  • UXの向上 → 2回め以降のページの切り替えの速さ
  • フロントとバックエンドの疎結合化

デメリット

  • 初回読み込みは、JSのモジュール等を沢山読み込むため少し時間がかかる
  • 静的ページが多いサイトには不向き
  • SEOに弱い 
    → 通常SPAは、クライアント側で画面を生成するため、プレーンなHTMLを返す。
      そのため、Webクローラからは、あたかもプレーンなページのように見える。

クローラとは…

Googleなどのロボット型検索エンジンがWEB上のファイルを収集するプログラムです。

robots.txt
よく見るrobots.txtとは検索エンジンのクローラー(ロボット)のWEBページのへのアクセスを制限するためのファイルで、ロボットに向けた命令文(アクセスを許可/許可しない)を記述するらしい。

SSR

SSRは、「Server Side Rendering」の略。 JavaScriptが実行されないときや初回ロードのときは、サーバサイドでそのコンテンツをレンダリングするというアプローチで、 SPAのSEO対策としてよく使われる。

問題点

  • Server側とClient側で同じページを返す仕組みをとるため、重複したロジックが生まれる….
    → Universal JSの概念の発生(ServerもRailsとかより、Nodeで作ってコードを共有しよう!)

Universal JSのフレームワーク