広く利用されている History API は、最も基本的なユースケースにおいてさえ利用が困難です。このことは、カスタムビルドのWebアプリケーションや共有コンポーネントライブラリにとって障害となっています。
History APIの使用を必要とする主要なユースケースには、以下のようなものがあります。
- シングルページアプリケーション(SPA)向けのWebアプリルーター: クライアントサイドルーターはナビゲーションを捕捉し、必要な読み込みとレンダリングを同じウィンドウ内で実行し、最終的にアドレスバーのURLと履歴スタックを更新します。
- ポップアップやダイアログなどのUIオーバーレイコンポーネント: 通常、意味のあるアドレスバーの変更は伴いませんが、オーバーレイは「戻る」ボタンを使用してキャンセル可能である必要があります。例えば、リッチな日付選択ポップアップでユーザーが「戻る」ボタンをクリックした際、ポップアップが閉じるのではなく、ブラウザが前のページに戻ってしまうのは悪いUX(ユーザー体験)です。
- 一時的な
history.state: bfcache(バック・フォワード・キャッシュ)からの高速なリロードを行うための有用なストレージとなり得ます。 - 昔ながらの
<a href="#...">によるフラグメントナビゲーション。