シングルページアプリケーション 【SPA】 Single Page Application
概要
シングルページアプリケーション(SPA)とは、Webアプリケーションの構成法の一つで、Webブラウザ側でページの移動を行わず、最初に読み込んだWebページ上のスクリプトがサーバとの通信や画面遷移を行う方式。Web技術で対話的に操作するアプリケーションを構築する場合、利用者の入力や操作をサーバへのページ読み込み要求として伝達し、操作結果を反映したWebページをブラウザが読み込むというサイクルを繰り返すのが一般的である。
これに対し、シングルページアプリケーションでは最初にブラウザ側に通信機能を持ったスクリプトを読み込み、利用者の操作や入力が行われるとスクリプトの内部処理でサーバ側との通信が行われ、入力の送信、応答の取得、表示内容の更新が行われる。
操作の度にページ全体の再読み込みを行う通常の方式に比べ、ページ上の必要な部分だけを更新するため軽快に動作させることができる。通常のアプリケーションソフト(ネイティブアプリ)に近い表示・操作感を実現することができ、ページが分かれている場合に実現しにくいオフラインでの動作なども実装しやすい。
ただし、原理上すべてのページや動作状態が単一のURL/URIによって提供されるため、外部から特定の表示状態を指定してアクセスする(URLによって状態を識別・同定する)ことができない。データ処理などの機能が主体のWebアプリケーションでは問題にならないが、コンテンツ提供の要素を含むサービスではSEOやアクセス解析などで不利な構成である。
また、最初に完全なクライアント側プログラムをロードしなければならないため、最初の操作画面が表示されるまでの待ち時間が大きくなりがちである。サーバ-クライアント間の連携部分を含む特定のWebアプリケーションフレームワークなどに依存して開発する場合が多く、開発ツールなどの自由度や人材確保などの面でも選択肢が限定されやすい。
Webサービスとして従来のソフトウェアのような高度な機能を実装する選択肢の一つとしてよく知られており、有力なJavaScriptフレームワークの中にもシングルページアプリケーションの構成を基本とするもの(Angular、Vue.js、Reactなど)がある。