【ひすとりーえーぴーあい】
History API とは?
最終更新:
💡 URLと履歴を、ページを読み込み直さずに更新する
ブラウザの現在のタブやウィンドウのセッション履歴をJavaScriptから操作するAPI。pushState()やreplaceState()では、ページを読み込み直さずに履歴とURLを更新できる。
📌 このページのポイント
「戻る」ボタンとHistory APIは関係あるの?
操作できるってことは、履歴を書き換えられるの?
pushState()で新しいエントリを追加し、replaceState()で現在のエントリを更新できる。どちらも、その呼び出しでは新しいページを読み込まないよ。URLを変える場合は、現在のページと同一オリジンである必要があるんだ。
ページを読み込み直さないのに、URLだけ変わるってどういうこと?
「戻る」ボタンを押したときはどうなるの?
SPA内で作った履歴に戻るときは、popstateを受け取って保存した状態に合わせて画面を復元できる。pushState()やreplaceState()を呼ぶだけではpopstateは発生しないよ。別の文書に戻る場合は、ページの読み込みが起こることもあるんだ。
これってSPAでよく使われてるやつだよね?
📖 おまけ:英語の意味
「History API」 = 履歴API
💬 Historyは履歴のこと。対象は今のタブやウィンドウのセッション履歴で、ブラウザに保存された全閲覧履歴の一覧を読み書きするAPIではないんだよ