0

現在のサイトで Firefox のセッション ストレージを使用すると、奇妙な動作が見られます。

ユーザーがサイトに移動すると、セッション ストレージの値は次のように設定されます。

sessionStorage.setItem(cacheKey, cacheValue);

次に、サイトの後続のページでセッション キーに特定の値があるかどうかを確認します。そうであれば関数を実行し、そうでなければ実行しません。

ただし、ユーザーが Firefox の「セッションの復元」機能を有効にしている場合、ブラウザーはセッション キーを保存しているように見えますが、値 (空の文字列) は保存していないようです。値がnullまたは空の文字列になっているため、その後失敗する値のチェックを実行します。

この動作に対処するためのより堅牢な方法はありますか?

4

1 に答える 1

1

このような予期しない動作については、値が保持されていない場合、「回復された」セッションを新しいセッションとして扱います。

値に対する単純な null チェックで十分です。

if (window.sessionStorage.getItem(cacheKey) === null) {
    sessionStorage.setItem(cacheKey, cacheValue);
}

将来、値が永続化される場合、おそらく既存の値を保持したいと思うでしょう。

于 2012-08-31T09:48:54.437 に答える