Single Page Application(SPA)とは、単一のHTMLページで構成され、ページ全体を再読み込みすることなく、JavaScriptで必要な部分だけを動的に書き換えるWebアプリケーションの仕組みです。
従来のWebサイト(MPA)との違い
- MPA (Multi-Page Application): リンクをクリックするたびにサーバーから新しいページ全体(HTML)を読み込みます。遷移時に画面が白くなったり、待ち時間が発生したりします。
- SPA: 最初に1回だけページを読み込み、その後の操作では必要なデータ(JSONなど)だけをサーバーとやり取りし、ページ内のコンテンツを部分的に更新します。
SPAのメリット
- 高速なユーザー体験(UX): ページ全体の読み込みが不要なため、スマホアプリやデスクトップアプリのようなサクサクとした操作感を実現できます。
- サーバー負荷の軽減: ページ全体ではなく、差分のデータのみを送受信するため、通信量を抑えることができます。
具体的なサービス例
私たちが日常的に使っている多くのWebサービスで採用されています。
- Gmail: メールの切り替えが瞬時に行われます。
- Google マップ: 地図を動かしたり検索したりしても、ページ全体がリロードされません。
- Slack: チャンネルの移動がスムーズです。
- Twitter (X): スクロールやタブの切り替えがシームレスです。
開発によく使われるフレームワーク
SPAを効率的に開発するために、主に以下のJavaScriptフレームワークが使われます。
- React (Meta社)
- Vue.js
- Angular (Google社)