- SPAは「新しいページ」を開いていない
- 普通のWebサイトの動き
- SPAの動き
- なぜアプリのように見えるのか
- SPAが使われる場面
- メリット
- 注意点:最初はむしろ遅い
- よくある誤解
- まとめ:SPAの本質
SPAは「新しいページ」を開いていない
SPAという言葉は難しそうに見えますが、仕組み自体は単純です。
実は、ページを移動しているように見えて移動していません。
多くの人が「リンクを押した=別ページを開いた」と思っています。
しかしSPAでは、同じページのまま画面の中身だけを書き換えています。
つまりSPAとは技術の名前というより、「ページの作り方の違い」です。
普通のWebサイトの動き
まず、従来のWebの流れです。
1. リンクをクリック
2. サーバーにアクセス
3. 新しいHTMLを受け取る
4. 画面を全部描き直す
検索結果をクリックすると、画面が一瞬白くなります。
あの白い画面は「新しいページを読み込んでいる」状態です。
この方式では、操作のたびにページを作り直します。
SPAの動き
SPAでは流れが変わります。
1. 最初に1回だけページを読み込む
2. 以後はデータだけ取得
3. 画面の必要な部分だけ更新
fetch("/api/article/1") .then(r => r.json()) .then(data => showArticle(data));
ここで重要なのは、取得しているのが「ページ」ではなく「情報」だという点です。
文章や数値だけを受け取り、ブラウザ自身が画面を作ります。
つまり、サーバーは画面を送っていません。
材料だけを送り、調理はブラウザが行っています。
なぜアプリのように見えるのか
スマホアプリを思い出してください。
画面を切り替えても、アプリ自体は終了していません。
SPAも同じです。
ブラウザの中でプログラムが動き続けています。
そのため
- スクロールが途切れない
- 画面切替が速い
- ボタンが即反応
という挙動になります。
Webなのにアプリに見える理由はここにあります。
SPAが使われる場面
SPAはすべてのサイトに向いているわけではありません。
特に効果が出るのは「操作が多いサービス」です。
例:
- SNS
- チャット
- 管理画面
- 地図サービス
- 検索サービス
逆に、記事を読むだけのページでは利点が少ないこともあります。
メリット
- 操作が速く感じる
- 画面が途切れない
- 通信量が減る場合がある
- ユーザー体験が安定する
特にログイン後の画面で効果が大きくなります。
注意点:最初はむしろ遅い
SPAは高速に見えますが、初回だけは重くなりやすいです。
理由は、画面を動かすプログラムを最初にまとめて読み込むからです。
- 最初:時間がかかる
- 2回目以降:速い
という特徴になります。
このため、検索から直接訪れる記事ページでは、通常のWebの方が体感が良いこともあります。
よくある誤解
SPA=最新で優れた方式
必ずしもそうではありません。
向いている用途が違うだけです。
「閲覧中心のサイト」と「操作中心のサービス」は別物です。
SPAは後者に適しています。
SPA=表示が速い
正確には「操作が速く感じる」です。
ページの読み込み自体が速いとは限りません。
まとめ:SPAの本質
SPAは高速化技術ではありません。
ページという考え方をやめた設計です。
従来のWebは「ページを取り替える仕組み」でした。
SPAは「画面を書き換える仕組み」です。
この違いを理解すると、なぜログイン前と後でサイトの動きが変わるのかが見えてきます。
公開ページは文書、ログイン後はソフトウェアとして動いている場合が多いからです。
つまりSPAとは、Webサイトの進化というより、
Webがアプリケーションに近づいた結果と言えます。