Scopo di sessionStorage e localStorage


105

Ho letto della documentazione su sessionStorage e localStorage, ma non capisco quale sia l'ambito: il dominio, una pagina specifica?

Ad esempio, se ho le seguenti pagine:

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

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

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

E se in ciascuna delle pagine precedenti eseguo (con idvalue è il valore nella stringa di query):

localStorage.setItem('ID',idvalue);

Finirò con 3 diversi valori memorizzati o i valori si sovrascriveranno a vicenda?

Risposte:


87

I valori si sovrascriveranno a vicenda. Ciascuna coppia di nomi chiave è univoca per un protocollo e un dominio, indipendentemente dai percorsi.

Il dominio interessato può essere modificato tramite la document.domainproprietà.

  • sub.example.com-> example.comè possibile (sottodominio)
  • sub.example.com-> other.example.comnon è possibile

Grazie! Avresti un riferimento da consigliare, che spieghi in dettaglio localStorage?
Christophe

2
@Christophe MDN: Storage e W3c: Web Storage .
Rob W

1
beh, anche dopo aver letto la pagina MDN non riesco ancora a trovare la risposta alla mia domanda ... Comunque, grazie ancora!
Christophe

1
@Christophe Ho verificato le mie dichiarazioni qualche tempo fa visualizzando il database sqlite (3) chiamato webappsstore.sqlitenella directory del mio profilo Firefox, utilizzando query SELECT scope FROM webappsstore2;. Il risultato è l'inverso del dominio, seguito dal protocollo non invertita, e sufficiente con il porto, ad esempio: gro.allizom.snodda.secivres.:https:443. Come puoi vedere, non viene menzionato alcun percorso.
Rob W

Ecco la documentazione document.domaindell'API citata: html.spec.whatwg.org/multipage/…
mltsy

149

Archiviazione della sessione:

  1. I valori persistono solo per la finestra o la scheda in cui sono stati memorizzati.

  2. I valori sono visibili solo all'interno della finestra o della scheda che li ha creati.

Memoria locale:

  1. I valori persistono per la durata della finestra e del browser.

  2. I valori sono condivisi in ogni finestra o scheda in esecuzione nella stessa origine.

Quindi, leggendo e comprendendo questo, ogni coppia chiave-valore è univoca per ogni dominio, perché l'archiviazione locale mantiene i valori attraverso la finestra o la scheda.


3
Grazie. Potresti condividere il link a questo riferimento?
Christophe

3
Il link sopra è ora defunto questa è un'altra grande risorsa: sitepoint.com/an-overview-of-the-web-storage-api
chrisjlee

La conclusione può essere corretta, ma non il ragionamento. Anche se lo spazio di archiviazione fosse per pagina, potrebbe comunque persistere su finestre / schede.
pirocrisia
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.