sessionStorageおよびlocalStorageのスコープ


105

sessionStorageとlocalStorageに関するドキュメントをいくつか読んだのですが、スコープ、ドメイン、特定のページがわかりません。

たとえば、次のページがあるとします。

http://example.com/products.aspx?productID=1

http://example.com/products.aspx?productID=2

http://example.com/services.aspx?serviceID=3

上記の各ページで実行する場合(idvalueがクエリ文字列の値です):

localStorage.setItem('ID',idvalue);

最終的に3つの異なる値が保存されるのですか、それとも値が互いに上書きされるのですか?

回答:


87

値は互いに上書きします。各キーと名前のペアは、パスに関係なく、プロトコルとドメインで一意です。

影響を受けるドメインは、document.domainプロパティを介して変更できます。

  • sub.example.com-> example.com可能です(サブドメイン)
  • sub.example.com-> other.example.comできません

ありがとう!localStorageを詳細に説明している、お勧めのリファレンスがありますか?
クリストフ


1
まあ、MDNページを読んでもまだ質問の答えが見つからない...とにかく、もう一度ありがとう!
クリストフ

1
@Christophe webappsstore.sqlitequeryを使用して、Firefoxプロファイルディレクトリで呼び出されたsqlite(3)データベースを表示することにより、しばらく前に自分のステートメントを確認しましたSELECT scope FROM webappsstore2;。その結果、ドメインが逆になり、その後に非反転プロトコルが続き、ポートが追加されます(例:)gro.allizom.snodda.secivres.:https:443。ご覧のとおり、どのパスについても言及されていません。
Rob W

document.domain言及されているAPI のドキュメントは次のとおりです。html.spec.whatwg.org
multipage

149

セッションストレージ:

  1. 値は、それらが格納されているウィンドウまたはタブの間のみ存続します。

  2. 値は、それらを作成したウィンドウまたはタブ内でのみ表示されます。

ローカルストレージ:

  1. 値はウィンドウとブラウザの寿命を維持します。

  2. 値は、同じ原点で実行されているすべてのウィンドウまたはタブで共有されます。

したがって、ローカルストレージはウィンドウまたはタブ全体で値を保持するため、これを読んで理解することにより、各キーと値のペアはドメインごとに一意になります。


3
ありがとう。この参照へのリンクを共有してもらえますか?
クリストフ

3
上記のリンクは廃止されました。これは別の優れたリソースです。sitepoint.com
overview

結論は正しいかもしれませんが、推論ではありません。ストレージがページ単位であったとしても、ウィンドウ/タブ間で存続する可能性があります。
2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.