Zakres sessionStorage i localStorage

105

Czytałem dokumentację na temat sessionStorage i localStorage, ale nie rozumiem, jaki jest zakres: domena, konkretna strona?

Na przykład, jeśli mam następujące strony:

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

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

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

A jeśli na każdej z powyższych stron uruchomię (gdzie idvalue jest wartością w kwerendzie):

localStorage.setItem('ID',idvalue);

Czy skończę z trzema różnymi wartościami zapisanymi, czy te wartości będą się nadpisywać?

Christophe
źródło

Odpowiedzi:

87

Wartości będą się nadpisywać. Każda para klucz-nazwa jest unikalna dla protokołu i domeny, niezależnie od ścieżek.

Domenę, której dotyczy problem, można zmienić za pośrednictwem usługi document.domain.

  • sub.example.com-> example.comjest możliwe (subdomena)
  • sub.example.com-> other.example.comnie jest możliwe
Rob W
źródło
Dzięki! Czy chciałbyś polecić jakieś odniesienie, które szczegółowo wyjaśnia localStorage?
Christophe
2
@Christophe MDN: Storage i W3c: Web Storage .
Rob W
1
cóż, nawet po przeczytaniu strony MDN nadal nie mogę znaleźć odpowiedzi na moje pytanie… Tak czy inaczej, jeszcze raz dziękuję!
Christophe
1
@Christophe Jakiś czas temu zweryfikowałem swoje oświadczenia, przeglądając bazę danych sqlite (3) wywołaną webappsstore.sqlitew moim katalogu profilu Firefoksa za pomocą zapytania SELECT scope FROM webappsstore2;. Rezultatem jest odwrócenie domeny, po której następuje nieodwrócony protokół i wystarczający port, np gro.allizom.snodda.secivres.:https:443. : . Jak widać, nie ma wzmianki o żadnej ścieżce.
Rob W
Oto dokumentacja document.domainwspomnianego API: html.spec.whatwg.org/multipage/ ...
mltsy
149

Przechowywanie sesji:

  1. Wartości są zachowywane tylko tak długo, jak długo okno lub karta, w której zostały zapisane.

  2. Wartości są widoczne tylko w oknie lub na karcie, która je utworzyła.

Lokalny magazyn:

  1. Wartości pozostają przez okresy istnienia okna i przeglądarki.

  2. Wartości są wspólne dla każdego okna lub karty działającej w tym samym miejscu pochodzenia.

Tak więc, czytając i rozumiejąc tę, każda para klucz-wartość jest unikalna dla każdej domeny, ponieważ pamięć lokalna zachowuje wartości w oknie lub na karcie.

Talha
źródło
3
Dzięki. Czy możesz udostępnić link do tego odniesienia?
Christophe
3
Powyższy link jest teraz Nieistniejący, to kolejny świetny zasób: sitepoint.com/an-overview-of-the-web-storage-api
chrisjlee
Wniosek może być poprawny, ale nie uzasadnienie. Nawet jeśli pamięć byłaby na stronę, może nadal występować w oknach / kartach.
pirokryzja