SPAとMPAの違いをわかりやすく比較

まずは、これだけ

SPAはひとつのページ内で必要な部分を更新し、MPAは移動のたびに別ページを読み込みます。

SPAは画面の一部を書き換え、MPAはページ全体を読み直す比較図
SPA:部分更新MPA:ページ単位で更新

違いは画面遷移のしかた

SPAはSingle Page Application、MPAはMulti Page Applicationの略です。見た目が似ていても、リンクやボタンを押した後のページ更新方法が異なります。

SPA

最初に土台を読み込み、その後は必要なデータと表示部分を更新する。

MPA

URLの移動ごとに、サーバーから新しいHTMLページを受け取る。

共通点

どちらも複数の画面やURLを持つWebサービスを作れる。

クリックした後の流れ

SPAはアプリのような滑らかな操作感を作りやすく、MPAはページ単位の構造が分かりやすい傾向があります。

ひとつのブラウザ画面内で切り替える方法と、複数ページを移動する方法の比較
利用者からは同じ画面遷移に見えても、裏側では部分更新とページ全体の読み直しという違いがあります。
1利用者リンクを押す
2SPA必要なデータを取得
3部分更新画面の一部を変更
4MPA新しいHTMLを取得
5全体更新ページを表示し直す

SPAでもURLを変更でき、ブラウザの戻る・進むに対応できます。ただし、その動作をアプリ側で正しく管理する必要があります。MPAはURLとHTMLページの対応が比較的分かりやすいのが特徴です。

向いている場面は違う

SPAとMPAは優劣ではなく、サービスの性格に合わせて選ぶものです。現在は両方の特徴を組み合わせる構成も一般的です。

操作が続く管理画面と、ページ単位で読む記事サイトの利用場面の比較
操作を連続して行う画面と、ページ単位で読む画面では、使いやすい構成が異なります。
SPAが得意

管理画面、チャット、地図など操作が連続する画面。

MPAが得意

記事、企業サイトなどページ単位で内容が分かれる構成。

組み合わせ

最初はHTMLを表示し、その後を部分更新する方法もある。

よくある誤解:SPAなら必ず速い?

SPAは画面遷移が滑らかになりやすい一方、最初に読み込むJavaScriptが大きいと初回表示に時間がかかることがあります。MPAもキャッシュやサーバー側の工夫によって高速に表示できます。

検索エンジンへの対応も、SPAだから不可能、MPAだから完璧という単純な話ではありません。使う仕組みと実装方法によって結果が変わります。

ここまでのまとめ

SPAは「同じ舞台で場面転換」、MPAは「ページごと舞台を入れ替える」と考えると違いをつかみやすくなります。