<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="49" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[49]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ハイパーリンク</anchor>をたどって次のページに進んだ時、
元のページの <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Document</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">レンダリング</anchor>に必要な情報を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セッション履歴エントリー</anchor>内に保存しておき、
次の「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">戻る</anchor>」操作でそれを再利用することができます。これによって履歴操作による再<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">レンダリング</anchor>がかなり高速化できます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="50" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[50]</anchor-end> 履歴操作による再利用を見越したデータの保存を <dfn><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bfcache</anchor></dfn> といいます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bfcache</anchor> を実装する義務はありませんが、
多くのブラウザーが実装しています。 <cite>HTML Standard</cite> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bfcache</anchor>
を適用<em>できる</em>条件を規定しています。 (適用義務はなく、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メモリー</anchor>利用量等を勘案していつでも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">キャッシュ</anchor>を廃棄できます。)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="51" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[51]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bfcache</anchor> による再利用を考慮したページの表示開始や表示終了で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">発火</anchor>される<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>として、
<dfn><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pageshow</anchor></code></dfn> と <dfn><code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pagehide</anchor></code></dfn> があります。</p><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> <cite xml:lang="en-GB-x-hixie">HTML Standard</cite> (<time>2015-04-25 04:40:19 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://html.spec.whatwg.org/#session-history">https://html.spec.whatwg.org/#session-history</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[41]</anchor-end> <cite xml:lang="en-GB-x-hixie">HTML Standard</cite> (<time>2014-10-23 20:18:13 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://html.spec.whatwg.org/#pagetransitionevent">https://html.spec.whatwg.org/#pagetransitionevent</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> <cite xml:lang="en-GB-x-hixie">HTML Standard</cite> (<time>2015-04-25 04:40:19 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://html.spec.whatwg.org/#unloading-documents">https://html.spec.whatwg.org/#unloading-documents</anchor-external></li></ul></refs></section><section><h1>セッション履歴エントリーにおける文書</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者エージェント</anchor>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">現在エントリー</anchor>以外の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セッション履歴エントリー</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト</anchor>から参照されていないものについて、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書を捨てる</anchor>ことにしても構いません。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;20</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者エージェント</anchor>がいつ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">キャッシュ</anchor>を保持し続けるべきか、
いつ捨てるべきかは <cite>HTML Standard</cite> としては規定していません <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;20</anchor-internal></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者エージェント</anchor>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>体験と利用可能な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メモリー</anchor>等の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">資源</anchor>の制約のバランスを考慮して保持するかどうかを決められます。</comment-p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="60" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[60]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTPキャッシュ</anchor>に対する指示である <code xmlns="http://www.w3.org/1999/xhtml" class="HTTP" xml:lang="en">Cache-Control:</code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>の指示を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bfcache</anchor> に適用する義務はありません。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> 捨てられた場合、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>または<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト</anchor>により再度そのページに遷移した時は、
新たにそのページを読み込む (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">エントリー更新</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">navigate</anchor>
を実行する) ことになります <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;20</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> 捨てたかどうかによって<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セッション履歴</anchor>に関する処理に影響があってはなりません。
文書が捨てられていて新たに読み込み直した場合は、同じ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>を共有していた他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セッション履歴エントリー</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>も同じ新しい<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>としなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;20</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> しかしながら、捨てて再 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">navigate</anchor> して同じ状態が復元される保証はありません。
(むしろ一般には異なる状態になります。) <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ネットワーク</anchor>が切断されて接続できなくなれば、
以前は通常の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>だったものが<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ネットワークエラー</anchor>の表示に変わったりします。</p><figure class="list"><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end> 再 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">navigate</anchor> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">閲覧文脈</anchor>内の表示ではなく、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ダウンロード</anchor>等<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">閲覧文脈</anchor>外の表示となった場合、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セッション履歴エントリー</anchor>の更新は行われず、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セッション履歴</anchor>の移動 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">履歴の探索</anchor>)
も行われません。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end> 再 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">navigate</anchor> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">閲覧文脈</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">活性文書</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">素片識別子へのスクロール</anchor>だけに留まった場合、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セッション履歴エントリー</anchor>の更新は行われず、かわりに<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">現在エントリー</anchor>の次に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">素片識別子</anchor>へスクロールした<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セッション履歴エントリー</anchor>が挿入されることになります。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> それ以外なら<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">エントリー更新</anchor>が行われますが、新しい<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト</anchor>が
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">navigate</anchor> を行った場合など、新<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">現在エントリー</anchor>とそれ以後の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セッション履歴エントリー</anchor>を新しく作成することになる場合もあります。<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>の破棄前の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セッション履歴</anchor>の状態が復元される保証はありません。</li></ul></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[40]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">安全メソッド</anchor>では無いなら、自動的に再 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">fetch</anchor> するのは好ましくありませんから、
エラー文書がかわりに表示されるべきと思われます。<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>が明示的に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">再読込</anchor>したら、
再度 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">fetch</anchor> するべきです。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="39" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[39]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セッション履歴エントリー</anchor>も参照。</comment-p><ed xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">
<anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="61" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[61]</anchor-end> 
再 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">navigate</anchor> における<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">キャッシュ指令</anchor>の挙動</ed></section><section><h1>イベント</h1><figure class="short list"><ul><li><code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pageshow</anchor></code></li><li><code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pagehide</anchor></code></li></ul></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</anchor-end> <code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pagehide</anchor></code> は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書のunload</anchor>時に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">発火</anchor>されることがあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>の <dfn><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">page showing</anchor></dfn> フラグは、 <code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pageshow</anchor></code>
と <code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pagehide</anchor></code> の整合性を保つためのフラグです <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;32</anchor-internal></src>。 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>作成時の初期値は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">偽</anchor>です <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;32</anchor-internal></src>。両イベントの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">発火</anchor>により値が変化します
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">履歴の探索</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書のunload</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">stops parsing</anchor> 参照)。</p></section><section><h1><code class="DOMi" xml:lang="en">PageTransitionEvent</code> インターフェイス</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[42]</anchor-end> <dfn><code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PageTransitionEvent</anchor></code></dfn> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インターフェイス</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;41</anchor-internal></src> は、
<code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pageshow</anchor></code>/<code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pagehide</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベント</anchor>と共に用いられます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書環境</anchor><del>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ワーカー環境</anchor></del>に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">晒され</anchor>ています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;41</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[44]</anchor-end> <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PageTransitionEvent</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インターフェイス</anchor>は、
他の <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Event</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インターフェイス</anchor>同様の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">コンストラクター</anchor>を持ちます
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;41</anchor-internal></src>。
初期化のための辞書は <dfn><code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PageTransitionEventInit</anchor></code></dfn> です <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;41</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[43]</anchor-end> <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PageTransitionEvent</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インターフェイス</anchor>は、
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Event</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インターフェイス</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">継承</anchor>しています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;41</anchor-internal></src>。
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PageTransitionEventInit</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">辞書</anchor>は、
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EventInit</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">辞書</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">継承</anchor>しています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;41</anchor-internal></src>。</p></section><section><h1><code class="DOMi" xml:lang="en">PageTransitionEvent</code> インターフェイス <code class="DOMa" xml:lang="en">persisted</code> 属性</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[45]</anchor-end> <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PageTransitionEvent</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インターフェイス</anchor>および
<code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PageTransitionEventInit</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">辞書</anchor>は、<code class="IDL" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">boolean</anchor></code>
型の読み取り専用<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IDL属性</anchor> <dfn><code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">persisted</anchor></code></dfn>を持ちます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;41</anchor-internal></src>。
初期値は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">偽</anchor>です <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;41</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[34]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>は、 <dfn><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><em xmlns="http://www.w3.org/1999/xhtml">salvageable</em></anchor></dfn> かどうかの状態を持ちます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;32</anchor-internal></src>。
これが <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">persisted</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>の値として使われます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[37]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><em xmlns="http://www.w3.org/1999/xhtml">salvageable</em></anchor> の初期値は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">真</anchor>です <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;32</anchor-internal></src>。 </p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[36]</anchor-end> 次の操作を行うと、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><em xmlns="http://www.w3.org/1999/xhtml">salvageable</em></anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">偽</anchor>となります。<figure class="list"><ul><li><del><code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">document.open</anchor></code> の実行</del></li><li><code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">beforeunload</anchor></code> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベントリスナー</anchor>の呼び出し (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">prompt to unload a document</anchor>)</li><li><code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">unload</anchor></code> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベントリスナー</anchor>の呼び出し (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書のunload</anchor>)</li><li><code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WebSocket</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書を捨てる</anchor>時点で未破棄</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書のabort</anchor>による <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">abort</anchor> の発生</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">子孫閲覧文脈</anchor>が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><em xmlns="http://www.w3.org/1999/xhtml">salvageable</em></anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書のunload</anchor>)</li></ul></figure></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[46]</anchor-end> <code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">document.open</anchor></code> では、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><em xmlns="http://www.w3.org/1999/xhtml">salvageable</em></anchor> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">偽</anchor>になったあと、
再び<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">真</anchor>となることがあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[38]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者エージェント</anchor>は適宜未参照の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>を捨てられますから (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;21</anchor-internal>)、
<code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">persisted</anchor></code> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">真</anchor>であっても、後から <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bfcache</anchor>
で再表示される保証はありません。</p></section><section><h1>関連</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[52]</anchor-end> <code class="DOM" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pageshow</anchor></code>/<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pagehide</anchor></code> と前後して、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Page Visibility</anchor> も変化します。</p></section><section><h1>歴史</h1><section><h1>bfcache (Firefox)</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <cite xml:lang="en-us">Using Firefox 1.5 caching - MDC</cite> (<time>2009-01-24 00:43:53 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://developer.mozilla.org/ja/Using_Firefox_1.5_caching">https://developer.mozilla.org/ja/Using_Firefox_1.5_caching</anchor-external></p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Firebug</anchor> が動作していると機能しない? <time>2011-02-08T06:29:29.700Z</time></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHR</anchor> が接続中だと機能しない? <time>2011-02-08T06:29:40.500Z</time></li></ul></section><section><h1>Fast history navigation (Opera)</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <cite xml:lang="en">JavaScript and History Navigation - Opera Knowledge Base</cite> (<time>2009-02-08 17:32:47 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.opera.com/support/kb/view/827/">http://www.opera.com/support/kb/view/827/</anchor-external></p><blockquote><p>Starting in Opera 9.0 Technical Preview 2, Opera attempts to detect pages that rely on this behavior, and will not use fast history navigation on those pages. This means that the page, and any scripts it contains, will be loaded from cache, and processed again when the page is loaded using the back or forward navigation. This is known as &quot;compatible history navigation&quot;. </p></blockquote><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> いつ互換モードになるのかの条件は <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal> に明記されていませんが、
<code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">onload</anchor></code> と <code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">onunload</anchor></code> が関わっているようです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者JavaScript</anchor> で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">履歴ナビゲーション・モード</anchor>を指定するには、
<code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">opera.setOverrideHistoryNavigationMode</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">特性</anchor>を使います。
値は <code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">automatic</anchor></code>、<code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">fast</anchor></code>、
<code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">compatible</anchor></code> です。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト</anchor>で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">履歴ナビゲーション・モード</anchor>を明示的に指定するには、
<code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">history.navigationMode</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">特性</anchor>を使います。
値は <code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">automatic</anchor></code>、<code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">fast</anchor></code>、
<code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">compatible</anchor></code> です。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> なんか、 <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">onunload</anchor></code> を設定しても <code class="DOMa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">onload</anchor></code>
が呼ばれないという情報がありました。どういうときに自動判定で互換モードになるのでしょうかね?</p></section><section><h1>Page cache (WebKit)</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <cite>Surfin' Safari - Blog Archive » WebKit Page Cache I – The Basics</cite> (<time>2014-10-27 02:01:28 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.webkit.org/blog/427/webkit-page-cache-i-the-basics/">https://www.webkit.org/blog/427/webkit-page-cache-i-the-basics/</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> <cite>Surfin' Safari - Blog Archive » WebKit Page Cache II – The unload Event</cite> (<time>2014-10-27 02:01:43 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.webkit.org/blog/516/webkit-page-cache-ii-the-unload-event/">https://www.webkit.org/blog/516/webkit-page-cache-ii-the-unload-event/</anchor-external></li></ul></refs></section><section><h1>標準化</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <cite xml:lang="en">(X)HTML5 Tracking</cite>
(<time>2009-10-21 23:23:27 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://html5.org/tools/web-apps-tracker?from=4230&amp;to=4231">http://html5.org/tools/web-apps-tracker?from=4230&amp;to=4231</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <cite>Bug 7896 – Specify pageshow and pagehide events</cite>
(<time>2009-10-25 15:53:56 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7896">http://www.w3.org/Bugs/Public/show_bug.cgi?id=7896</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> <cite>Changeset 47824 – WebKit</cite>
(<time>2009-10-25 15:58:08 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://trac.webkit.org/changeset/47824">http://trac.webkit.org/changeset/47824</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> <cite>IRC logs: freenode / #whatwg / 20100113</cite>
(<time>2010-01-15 23:57:05 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://krijnhoetmer.nl/irc-logs/whatwg/20100113#l-474">http://krijnhoetmer.nl/irc-logs/whatwg/20100113#l-474</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="55" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[55]</anchor-end> <cite xml:lang="en"><strong>[</strong>giow<strong>]</strong> (2) Make pageshow/pagehide use PageTransitionEvent, to match r…</cite> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Hixie</anchor>著, <time>2010-02-23 20:29:14 +09:00</time>) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/9d17f6130b0dbcd46be35d952604ae7267b653e6">https://github.com/whatwg/html/commit/9d17f6130b0dbcd46be35d952604ae7267b653e6</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> <cite><strong></strong>[<strong></strong>whatwg<strong></strong>]<strong></strong> pagehide vs pagevis</cite>
( (<time>2013-08-30 00:53:42 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-August/040657.html">http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-August/040657.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <cite xml:lang="en">Web Applications 1.0 r8160     Provide hook for pagevis. Correctly return false for event.persisted in pagehide. Define one of the variables in an algorithm.</cite>
( (<time>2013-09-01 06:43:00 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://html5.org/tools/web-apps-tracker?from=8159&amp;to=8160">http://html5.org/tools/web-apps-tracker?from=8159&amp;to=8160</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <cite xml:lang="en">274784 – (blazinglyfastback) Make back and forward blazingly fast and side-effect free</cite>
( (<time>2013-12-16 09:05:37 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://bugzilla.mozilla.org/show_bug.cgi?id=blazinglyfastback">https://bugzilla.mozilla.org/show_bug.cgi?id=blazinglyfastback</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> <cite>IRC logs: freenode / #whatwg / 20131214</cite>
( (<time>2013-12-16 09:01:34 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://krijnhoetmer.nl/irc-logs/whatwg/20131214">http://krijnhoetmer.nl/irc-logs/whatwg/20131214</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> <cite xml:lang="ja">Chrome で高速にページを読み込む新しい技術のご紹介 - Google Developer Japan Blog</cite>
(<time>2015-04-10 17:01:36 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://googledevjp.blogspot.jp/2015/04/chrome.html">http://googledevjp.blogspot.jp/2015/04/chrome.html</anchor-external></figcaption><blockquote><p>Chrome 42 では、このコンパイル済みコードのローカルコピーを保持する拡張技術を採用することで、ユーザーがそのページに戻ってきたときにパースをダウンロードしてコンパイルする手順をすべて省略できるようになります。これによってすべてのページでコンパイル時間の 40% を削減し、モバイル端末において貴重なバッテリーの消費量を減らすことができます。 </p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> <cite>Surfin’ Safari - Blog Archive » WebKit Page Cache II – The unload Event</cite>
(<time>2009-10-25 15:54:55 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://webkit.org/blog/516/webkit-page-cache-ii-the-unload-event/">http://webkit.org/blog/516/webkit-page-cache-ii-the-unload-event/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> <cite xml:lang="en">Web Applications 1.0 r8160     Provide hook for pagevis. Correctly return false for event.persisted in pagehide. Define one of the variables in an algorithm.</cite>
( (<time>2013-09-01 06:43:00 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://html5.org/tools/web-apps-tracker?from=8159&amp;to=8160">http://html5.org/tools/web-apps-tracker?from=8159&amp;to=8160</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="47" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[47]</anchor-end> <cite>JavaScript - ブラウザバック時にリロードさせる - Qiita</cite>
(<time>2015-07-17 12:48:40 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://qiita.com/nabettu/items/48f066155f49629be83e">http://qiita.com/nabettu/items/48f066155f49629be83e</anchor-external></figcaption><blockquote><p>window.onpageshow = function(evt) {</p><p>if (evt.persisted) {</p><p>location.reload();</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="48" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[48]</anchor-end> <cite xml:lang="ja">戻るナビゲーションのキャッシュ (Windows)</cite>
(<time>2015-09-29 15:28:32 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://msdn.microsoft.com/library/dn265017(v=vs.85).aspx">https://msdn.microsoft.com/library/dn265017(v=vs.85).aspx</anchor-external></figcaption><blockquote><p>キャッシュされるためには、Web ページが次の条件を満たしていることが必要です。<ul><li>HTTP: プロトコルを使って表示される (HTTPS ページは、セキュリティ上の理由からキャッシュされません)。</li><li>ページで beforeunload イベント ハンドラーが定義されていない。</li><li>load イベントと pageshow イベントがすべて完了している。</li><li>ページに次のいずれも含まれない。<ul><li>indexedDB トランザクションが保留されている。</li><li>Web ソケット接続が開かれているか、アクティブである。</li><li>Web ワーカーが動作中である。</li><li>Microsoft ActiveX コントロール。</li></ul></li><li>F12 開発者ツールのウィンドウが開いていない。</li></ul></p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="53" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[53]</anchor-end> <cite>Issue 511340 - chromium - Investigate faster back/forward page navigation - An open-source project to help move the web forward. - Google Project Hosting</cite>
(<time>2015-12-19 00:34:02 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://code.google.com/p/chromium/issues/detail?id=511340">https://code.google.com/p/chromium/issues/detail?id=511340</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[54]</anchor-end> <cite xml:lang="en">Editorial: define Event attribute defaults through IDL · whatwg/html@0be0229</cite>
(<time>2016-03-23 21:15:47 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/0be02299f128cbb7c65a7ce259fdd838fd44a4b5">https://github.com/whatwg/html/commit/0be02299f128cbb7c65a7ce259fdd838fd44a4b5</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[56]</anchor-end> <cite xml:lang="en">PopStateEvent/HashChangeEvent/PageTransitionEvent are Window-only</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">zcorpan</anchor>著, <time>2016-09-13 21:25:40 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/dec1a5809e15d29592a66147ce2bed5018121b5f">https://github.com/whatwg/html/commit/dec1a5809e15d29592a66147ce2bed5018121b5f</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="57" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[57]</anchor-end> <cite xml:lang="en">Wait for pageShow event on forward/back commands</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">AutomatedTester</anchor>著, <time>2017-02-03 08:55:51 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/w3c/webdriver/commit/7c56dfc5f2fefd2af437bfd61e98f9837165704a">https://github.com/w3c/webdriver/commit/7c56dfc5f2fefd2af437bfd61e98f9837165704a</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="58" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[58]</anchor-end> <cite xml:lang="en">567365 - Cache-Control no-cache on https page disables history</cite>
(<time>2017-05-11 16:18:10 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://bugzilla.mozilla.org/show_bug.cgi?id=567365">https://bugzilla.mozilla.org/show_bug.cgi?id=567365</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[59]</anchor-end> <cite>Microsoft Edgeでブラウザバックをした時ラジオボタンのチェックが外れる問題 - Qiita</cite>
( (<time>2017-05-24 17:03:18 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://qiita.com/activefactor/items/990d5e02f2f69b90b172">http://qiita.com/activefactor/items/990d5e02f2f69b90b172</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[62]</anchor-end> <cite xml:lang="en">112564 - Cache-Control: no-cache should not affect back/forward buttons</cite>
(<time>2017-06-27 13:22:47 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://bugzilla.mozilla.org/show_bug.cgi?id=112564">https://bugzilla.mozilla.org/show_bug.cgi?id=112564</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="63" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[63]</anchor-end> <cite xml:lang="en">Remove more types from document.createEvent()</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ayg</anchor>著, <time>2017-08-06 21:41:25 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/dom/commit/5a532da58455e55b1e611161b72224d083fee7d4">https://github.com/whatwg/dom/commit/5a532da58455e55b1e611161b72224d083fee7d4</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="64" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[64]</anchor-end> <cite xml:lang="en">22291 - Investigate benefits of a bfcache - chromium - Monorail</cite>
(<time>2018-04-03 23:36:56 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://bugs.chromium.org/p/chromium/issues/detail?id=22291">https://bugs.chromium.org/p/chromium/issues/detail?id=22291</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="65" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[65]</anchor-end> <cite xml:lang="en">2879 - Implement fast back - chromium - Monorail</cite>
(<time>2018-04-03 23:37:42 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://bugs.chromium.org/p/chromium/issues/detail?id=2879">https://bugs.chromium.org/p/chromium/issues/detail?id=2879</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="66" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[66]</anchor-end> <cite xml:lang="en">511340 - Investigate faster back/forward page navigation - chromium - Monorail</cite>
(<time>2018-04-03 23:38:11 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://bugs.chromium.org/p/chromium/issues/detail?id=511340">https://bugs.chromium.org/p/chromium/issues/detail?id=511340</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="67" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[67]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Google AdSense</anchor> を埋め込むときに使われる
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GPT</anchor> は
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://securepubads.g.doubleclick.net/gpt/pubads_impl_191.js">https://securepubads.g.doubleclick.net/gpt/pubads_impl_191.js</anchor-external> や
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://securepubads.g.doubleclick.net/gpt/pubads_impl_rendering_191.js">https://securepubads.g.doubleclick.net/gpt/pubads_impl_rendering_191.js</anchor-external>
を読み込むのですが、
このスクリプト内で <code>unload</code> や <code>beforeunload</code>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">イベントリスナー</anchor>が登録されています。 (パフォーマンス計測用?)
そのため <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bfcache</anchor> が無効化されてしまうようです。
<time>2018-04-03T15:23:00.00Z</time></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="68" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[68]</anchor-end> <cite xml:lang="ja">Back-forward cache: web-exposed behaviour - Google ドキュメント</cite>, <time>2020-07-22 12:22:55 +09:00</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://docs.google.com/document/d/1JtDCN9A_1UBlDuwkjn1HWxdhQ1H2un9K4kyPLgBqJUc/edit#heading=h.58d6ijfz2say">https://docs.google.com/document/d/1JtDCN9A_1UBlDuwkjn1HWxdhQ1H2un9K4kyPLgBqJUc/edit#heading=h.58d6ijfz2say</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="70" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[70]</anchor-end> <cite xml:lang="en">GitHub - rakina/bfcache-explainer</cite>, <time>2023-05-17T02:04:59.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/rakina/bfcache-explainer">https://github.com/rakina/bfcache-explainer</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="69" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[69]</anchor-end> <cite xml:lang="en">Back-forward cache on Android - Chrome Platform Status</cite>, <time>2023-05-17T02:03:52.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://chromestatus.com/feature/5815270035685376">https://chromestatus.com/feature/5815270035685376</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="71" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[71]</anchor-end> <cite xml:lang="ja">バック/フォワードキャッシュ</cite>, <time>2023-05-15T23:44:55.000Z</time>, <time>2023-05-17T02:15:04.093Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://web.dev/bfcache/">https://web.dev/bfcache/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[72]</anchor-end> <cite xml:lang="ja">BFCache Chrome devtools</cite>
(<time>2023-05-17T02:30:44.000Z</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://groups.google.com/a/chromium.org/g/bfcache-dev/c/HkgtcRIdjso?pli=1">https://groups.google.com/a/chromium.org/g/bfcache-dev/c/HkgtcRIdjso?pli=1</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="73" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[73]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;72</anchor-internal> <code>BrowsingInstanceNotSwapped</code></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="74" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[74]</anchor-end> <cite xml:lang="en">HTTPS pages with Cache-control: no-store and Back/Forward Cache - Chrome Platform Status</cite>, <time>2023-05-17T03:13:10.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://chromestatus.com/feature/6705326844805120">https://chromestatus.com/feature/6705326844805120</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="75" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[75]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Android</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</anchor> で謎に <code>BrowsingInstanceNotSwapped</code> のために
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bfcache</anchor> が効かなかったのですが、
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="chrome://flags/#back-forward-cache">chrome://flags/#back-forward-cache</anchor-external>
を有効にするとこのエラーは出なくなって普通に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bfcache</anchor>
が使われるようになりました。</p><p>令和3年の Chrome 96 から段階的にデフォルト有効化されてるとのことですが、
未だに完全には有効化されていないのか、
端末によっては設定の更新が行き渡っていないのか事情はよくわかりませんが、
まだ無効のままの端末もあるということみたいです。</p><p>そして <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</anchor> の DevTools もこのフラグが無効なときはその旨を表示してくれるのですが、
挙動が謎で、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">navigation</anchor> の種類?によってその旨のエラーを出したり、かわりに
<code>BrowsingInstanceNotSwapped</code> を出したりするみたいです。
<time>2023-05-17T03:26:45.900Z</time></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="76" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[76]</anchor-end> 
まったく同じ端末で同じページを表示して、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">iOS</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Safari</anchor> では <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bfcache</anchor> が効かないのに <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</anchor> では効くことがあります。
どちらも同じ <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WebKit</anchor> のはずなのに、このあたりは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ブラウザー</anchor>独自の部分が影響しているみたいです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="77" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[77]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</anchor> のドキュメントのどれかに、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Android</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WebView</anchor> は複雑になるから
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bfcache</anchor> に対応する予定はないと書いてありました。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">埋め込みブラウザー</anchor>ではなく <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</anchor> を使わないと<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者</anchor>の体験が悪くなるケースがあるということ。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[78]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Facebook</anchor> の <code>iframe</code> が <code>unload</code> 使ってるせいで <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bfcache</anchor> が効かないんだが、、、糞が</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="79" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[79]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">iPhone</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Safari</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bfcache</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Page Cache</anchor>) は適用条件が厳しい(?)らしく、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Firefox</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</anchor> なら効くときでも <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Safari</anchor> だと効かないことがかなりあるみたいです。
メモリー利用量なのか何なのかいまいちその条件はよくわからないのですが、
特定サイトのほとんど同じ構成のページでも情報量が多い所では効かなくて少ない所では効いたり、かと思ったら履歴移動中にさっきまで効いてたページが効かなくなってかわりにずっと効いていなかったページが効くようになったり、
とページ自体の構造と関係ない動的な何かで判断が変わってくるっぽくて。
<time>2023-05-18T06:45:36.700Z</time></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="80" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[80]</anchor-end> 
よく作り込まれてるであろう <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Google検索</anchor>なんかでも効かないんすよね。</p></section></section></body></html>