WebサイトやWebアプリケーションにオープニングやアニメーションなどを設定する際、その再生の有無を制御するフラグは、sessionStorage
やlocalStorage
などの永続的なオブジェクトに保存することを推奨します。
なぜなら、JavaScriptだけで判断を行うと、fbcache
などが作用し、期待通りに動作しない可能性があるからです。
fbcacheは、Safariブラウザが使用するメモリ内キャッシュです。ユーザーが移動しているときにページの完全なスナップショット (JavaScriptヒープを含む) を格納します。ページ全体がメモリに保存されているため、ユーザーが戻ることを決めた場合、ブラウザーはすばやく簡単にページを復元できます。
fbcacheは、バック/フォワードボタンをより効率的に使用できるようにすることで、ユーザーエクスペリエンスを向上させるために設計されています。たとえば、ユーザーがページを移動して、その後バックボタンをクリックすると、ブラウザーはfbcacheからページを復元して、ユーザーを以前のページに戻すことができます。これにより、ユーザーはページを最初から読み込む必要がなくなり、読み込み時間が短縮されます。
fbcacheは、JavaScriptヒープもキャッシュします。これにより、ユーザーがページを移動して、その後JavaScriptを実行する必要がある場合、ブラウザーはfbcacheからJavaScriptヒープを取り出して、ユーザーを以前のページに戻すことができます。これにより、ユーザーはJavaScriptを再実行する必要がなくなり、パフォーマンスが向上します。
一方、sessionStorage
やlocalStorage
は、ブラウザ内に情報を保存し、ページのリロードや再訪問時でもその値を保持することができます。これを利用することで、再生フラグの管理が容易になり、予期しない挙動を防ぐことができます。