- ページが変わっているのではなく「中身」を入れ替えています
- 従来のWebサイトの仕組み
- SPAがしていること
- 画面が変わる正体:DOMの書き換え
- URLが変わる理由
- なぜアプリのように感じるのか
- メリットと注意点
- なぜ広く使われているのか
- まとめ:Webページはもう「ページ」ではない
ページが変わっているのではなく「中身」を入れ替えています
最近のWebサイトは不思議な動きをします。
リンクを押しているのに、読み込み画面が出ず、一瞬で内容が変わります。
それなのに、戻るボタンも普通に使えます。
多くの人がこう感じます。
> ページが高速に読み込まれている
実際は違います。
新しいページを取得していません。
1枚のHTMLの中身を書き換えているだけです。
これをSPA(Single Page Application)と呼びます。
従来のWebサイトの仕組み
以前のWebはシンプルでした。
- リンクをクリック
- サーバーへアクセス
- 新しいHTMLを取得
- 画面を再描画
毎回、ページ全体を読み直していました。
そのため「白い画面」が出ていました。
SPAがしていること
SPAでは、最初に1枚のHTMLだけを取得します。
その後はページ遷移を行いません。
代わりに、JavaScriptがサーバーから「データ」だけを取得します。
async function loadPage(page){ const res = await fetch("/api/page/" + page); const data = await res.json(); render(data); }
ここで取得しているのはHTMLではなくJSONです。
文章データだけを受け取り、画面を作り直しています。
画面が変わる正体:DOMの書き換え
JavaScriptはHTMLを丸ごと入れ替えているわけではありません。
表示領域の一部だけを変更します。
<div id="content"></div>
function render(data){ const content = document.getElementById("content"); content.textContent = data.text; }
この瞬間、画面が切り替わります。
しかしページは移動していません。
つまり、ページではなく部品を切り替えているのです。
URLが変わる理由
SPAでもURLは変わります。
これは特別なAPIを使っています。
history.pushState({}, "", "/about");
これにより、ページ遷移せずにURLだけ変更できます。
戻るボタンが使えるのもこの仕組みです。
ブラウザは「移動した」と思いますが、
実際には同じページに留まっています。
なぜアプリのように感じるのか
再読み込みがないからです。
従来のWeb:
- 毎回サーバーへHTMLを取りに行く
SPA:
- 最初だけHTML取得
- 以降はデータだけ通信
通信量が減るため、操作が高速になります。
その結果、表示が途切れません。
メリットと注意点
SPAは便利ですが万能ではありません。
メリット
- 高速な画面切替
- アプリに近い操作感
- 部分更新が可能
注意点
- 初回読み込みが重い
- JavaScript無効だと動かない
- SEOが難しい場合がある
特に検索エンジンはHTMLを読むため、
内容が後から生成されると認識されにくいことがあります。
なぜ広く使われているのか
SNS・管理画面・チャットなどは
「連続操作」が前提です。
もし毎回ページ遷移すると、
- 入力が消える
- スクロール位置が戻る
- 体験が途切れる
SPAはこれを防ぎます。
つまり機能ではなく体験のための技術です。
まとめ:Webページはもう「ページ」ではない
SPAの本質は単純です。
- HTMLは1回だけ取得
- データだけ通信
- JavaScriptが画面を構築
ページ遷移しないのに画面が変わる理由は、
ブラウザの中でアプリが動いているからです。
現在のWebサイトは、文書表示システムではありません。
ブラウザというOSの上で動くソフトウェアになっています。