(注: FireFox のみ)
Back-Forward キャッシュは、戻るボタンがクリックされたときに実行される Firefox のキャッシュ システムです。次に、ページ全体をリロードする (およびファイルを再要求する) 代わりに、キャッシュにある前のページの DOM を使用するだけです。
フッターにトラッキング コード スニペットを追加する必要がある piwik (分析サービス) を使用しています。これを追加すると、バックフォワード キャッシュが機能しなくなります。
アンロード イベント (またはアンロード前) がある場合、bfcache は自動的に無効になることを理解しています。これはおそらくここで起こっていることです。
とにかくBFCacheを機能させるために追加できるものはありますか?
さらに悪いことに、piwik コードの下にカスタム コードを追加することはできません。それは常に最後です。
以下に示すコードを追加して、登録されているアンロード イベントを削除しようとしましたが、BFcache はまだ機能していません。
$(window).unbind('beforeunload');
$(window).unbind('unload');
window.onbeforeunload = null;
window.onunload = null;
私も試しました:
function UnloadHandler() {
window.removeEventListener('unload', UnloadHandler, false);
}
window.addEventListener('unload', UnloadHandler, false);
$(window).unload(function () { $(window).unbind('unload'); });
しかし、これもうまくいきません。
いくつかのサンプルをオンラインに配置しました。これを Firefox でテストすることを忘れないでください:
これは動作中の BFcache を示しています ([戻る] ボタンがクリックされたかどうかに基づいて、異なるアラートが表示されます)。
http://users.telenet.be/prullen/bfcache/a.html
ロードされた piwik、BFCache が機能しなくなりました
http://users.telenet.be/prullen/bfcache/b.html
piwik をロードし、onload イベントの設定を解除しようとしましたが、まだ機能していません
http://users.telenet.be/prullen/bfcache/c.html
アンロードハンドラの使用
http://users.telenet.be/prullen/bfcache/d.html
@roasted による提案
http://users.telenet.be/prullen/bfcache/e.html http://users.telenet.be/prullen/bfcache/f.html
BFCache に関する詳細情報:
https://developer.mozilla.org/en-US/docs/Using_Firefox_1.5_caching
ここで動作の別のデモを見ることができます:
http://www.twmagic.com/misc/cache.html
dom 要素を追加し、最初のリンクをクリックしてから戻ると、dom 要素はまだそこにあります。ただし、onload または beforeunload イベントを追加すると、そうではありません。もう一度、これを firefox でテストします。
何か案は?