Cakupan sessionStorage dan localStorage

105

Saya membaca beberapa dokumentasi tentang sessionStorage dan localStorage, tetapi saya tidak mengerti apa cakupannya: domain, halaman tertentu?

Misalnya, jika saya memiliki halaman berikut:

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

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

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

Dan jika pada setiap halaman di atas saya jalankan (dengan idvalue menjadi nilai di querystring):

localStorage.setItem('ID',idvalue);

Apakah saya akan berakhir dengan 3 nilai berbeda yang disimpan, atau apakah nilainya akan saling menimpa?

Christophe
sumber

Jawaban:

87

Nilainya akan saling menimpa. Setiap pasangan nama-kunci unik untuk protokol dan domain, apa pun jalurnya.

Domain yang terpengaruh dapat diubah melalui document.domainproperti.

  • sub.example.com-> example.commungkin (subdomain)
  • sub.example.com-> other.example.comtidak mungkin
Rob W.
sumber
Terima kasih! Apakah Anda memiliki referensi untuk direkomendasikan, yang menjelaskan localStorage secara detail?
Christophe
2
@Christophe MDN: Penyimpanan dan W3c: Penyimpanan Web .
Rob W
1
yah, bahkan setelah membaca halaman MDN saya masih tidak dapat menemukan jawaban atas pertanyaan saya ... Pokoknya, terima kasih lagi!
Christophe
1
@Christophe Saya telah memverifikasi pernyataan saya beberapa waktu lalu dengan melihat database sqlite (3) yang dipanggil webappsstore.sqlitedi direktori profil Firefox saya, menggunakan kueri SELECT scope FROM webappsstore2;. Hasilnya adalah kebalikan dari domain, diikuti oleh protokol non-terbalik, dan mencukupi dengan pelabuhan, misalnya: gro.allizom.snodda.secivres.:https:443. Seperti yang Anda lihat, tidak disebutkan jalur mana pun.
Rob W
Berikut dokumentasi document.domainAPI yang disebutkan: html.spec.whatwg.org/multipage/…
mltsy
149

Penyimpanan Sesi:

  1. Nilai bertahan hanya selama jendela atau tab tempat mereka menyimpannya.

  2. Nilai hanya terlihat di dalam jendela atau tab yang membuatnya.

Penyimpanan lokal:

  1. Nilai bertahan jendela dan masa pakai browser.

  2. Nilai dibagikan di setiap jendela atau tab yang berjalan di asal yang sama.

Jadi, dengan membaca dan memahami ini, setiap key-value pair adalah unik untuk setiap domain, karena penyimpanan lokal mempertahankan nilai di seluruh jendela atau tab.

Talha
sumber
3
Terima kasih. Bisakah Anda membagikan tautan ke referensi ini?
Christophe
3
Link di atas sekarang mati ini sumber daya yang besar lain: sitepoint.com/an-overview-of-the-web-storage-api
chrisjlee
Kesimpulannya mungkin benar, tapi bukan alasannya. Meskipun penyimpanannya per halaman, itu masih bisa bertahan di seluruh jendela / tab.
pyrocrasty