[2] セッション履歴エントリーは、 セッション履歴中のエントリーです。
[4] セッション履歴エントリーは、次のものから構成されます。
[22] 履歴の探索や pushState
では、セッション履歴エントリーを構成する各状態が更新されることがあります。
(セッション履歴エントリーの文書については次章を参照。)
[32] 次のような状態を保存するべきかもしれません。
[8] セッション履歴エントリーは、セッション履歴の現在エントリーである場合があります。
[9] 利用者エージェント定義の状態を持つエントリーを持続的利用者状態付きエントリーといいます >>1。利用者エージェント定義の状態には、フォームデータ、 スクロール位置その他が含まれます >>1。
pushState
も参照。[37] セッション履歴エントリーエントリーからの持続的利用者状態の復元は、 次のようにしなければなりません >>36。
[25] 閲覧文脈は、文書を利用者に示すものです >>23。
閲覧文脈は、セッション履歴を持ちます >>23。セッション履歴は、
その閲覧文脈において過去、現在、未来に示される
Document
オブジェクトのリストです >>23, >>24。
閲覧文脈は、その各文書に対して強い参照を持ちます >>21。
[27] ある時点においては、閲覧文脈にはいずれか1つの文書が示されており、 これを活性文書といいます >>23。セッション履歴のうち、 いずれか1つが現在エントリーとなります。履歴の探索の途中の (スクリプトからは観測できない) 状態を除き、現在エントリーの文書が活性文書です。
[26] 厳密にはセッション履歴はセッション履歴エントリーのリストです。 セッション履歴エントリーは文書を保持していますが、それ以外の情報も保持しています。 複数のセッション履歴エントリーの文書が同じ文書である場合もあります >>1。
[11] 状態オブジェクト付きのエントリーが作成された場合や、 素片識別子へのスクロールのみの navigate が行われた場合に、 同じ文書を共有するセッション履歴エントリーが作成されます >>1。
[18] 利用者エージェントは、ページごとに追加できる状態オブジェクト数に上限を設けて構いません >>1。 つまり同じ文書を保持するセッション履歴エントリーの個数に上限を設けることができます。 上限に達したら、状態オブジェクトを持つ最古のもの (= 同じ文書を持つ、索引の小さい方から2番目のもの) から削除していきます。
pushState
を参照。[28] 文書から閲覧文脈へも、強い参照があります >>21 (文書の閲覧文脈)。
[6] 文書が完全に活性でなければ、資源を解放するために捨てて構いません >>1。 また閲覧文脈を捨てると、閲覧文脈のセッション履歴のすべてのセッション履歴エントリーの文書について、文書を捨てることとなります >>21。
[45] Chrome は非表示状態のタブの活性文書も捨てることがあるようです。 メモリー等の資源の節約のためなのでしょうが、しかしこれは必ずしも利用者の期待に即した動作ではないようです。
document.hidden
参照。[5] 文書を捨てると、閲覧文脈から文書への強い参照を破棄されます >>21。
[10] document.open
では、文書を意図的に未設定状態にしたセッション履歴エントリーが作られることがあります。
[14] 文書が捨てられた場合、履歴の探索で再度必要になった時点で、 エントリー更新の navigate により改めて文書が作られます。 元々同じ文書を共有していたすべてのセッション履歴エントリーがその新しい文書を共有します >>1。
[33] セッション履歴エントリーの文書 (閲覧文脈と関連付けられる文書)
は、 navigate によって作成されるか、 閲覧文脈の作成で作成される初期about:blank
文書かのいずれかです。
[34] Presto には setDocument
もありました。
[30] Webブラウザー組み込みのフィードビューアーへの navigate やエラー画面への navigate などにより、閲覧文脈が文書以外を表示する状態になることもあります。 もっとも、その場合でも (ダミーの) 文書は存在しています。
[3] セッション履歴は、セッション履歴エントリーによって構成されるリストです >>1。 セッション履歴の現在エントリーは、そのうちのいずれかのエントリーです。
[15] 結合セッション履歴は、セッション履歴エントリーによって構成されるリストです。
[13] 文書の最新エントリーは、セッション履歴エントリーです。
[17] history.back()の入力データ保持について #HTML - Qiita ( ( 版)) http://qiita.com/items/c2de591b4eaff59d3e07
[29] Custom Scroll Restoration Proposal ( 版) http://majido.github.io/scroll-restoration-proposal/
[31] majido/scroll-restoration-proposal ( 版) https://github.com/majido/scroll-restoration-proposal
[35] [whatwg] Order of popstate event and scroll restoration - interop issue (Majid Valipour 著, 版) https://lists.w3.org/Archives/Public/public-whatwg-archive/2015Aug/0010.html
[42] Add scroll restoration preference to history traversal · whatwg/html@dd6a34e ( 版) https://github.com/whatwg/html/commit/dd6a34ec3c191ee1968a0fc8d174b4ce3b615916
[43] Clarify manual scroll restoration mode · whatwg/html@017a842 ( 版) https://github.com/whatwg/html/commit/017a842ec6c63e6ed4f26f77da41270688eab33e
[44] Editorial: clean up "traverse the history" (annevk著, ) https://github.com/whatwg/html/commit/b9c90431ad4c8aa583aee1691a6a1bd355b68b53
[46] Breaking: refactor structured clone into serialize/deserialize (domenic著, ) https://github.com/whatwg/html/commit/97d644c97335956610a31e8ad98d1a388c063e84
[47] document.open() simplifications, part 2 (TimothyGu著, ) https://github.com/whatwg/html/commit/ae7cf0cc1936c6c309d7279c822dffc3af147851
[48] document.open() can make a document's URL go out of sync with its history entry · Issue #3885 · whatwg/html () https://github.com/whatwg/html/issues/3885
[49] Editorial: nested browsing context is a member, not a type (annevk, , ) https://github.com/whatwg/html/commit/6b737bbc428facf34ec3728c0912cf9e172d0ea4