ขอบเขตของ 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 หรือไม่
Christophe

2
@Christophe MDN: การจัดเก็บและW3c: เว็บเก็บ
Rob W

1
แม้ว่าหลังจากอ่านหน้า MDN แล้วก็ยังไม่พบคำตอบสำหรับคำถามของฉัน ... ยังไงก็ขอขอบคุณอีกครั้ง!
Christophe

1
@Christophe ฉันได้ตรวจสอบคำสั่งของฉันในขณะที่กลับมาโดยดูฐานข้อมูล sqlite (3) ที่เรียกwebappsstore.sqliteในไดเรกทอรีโปรไฟล์ Firefox ของฉันโดยใช้แบบสอบถามSELECT scope FROM webappsstore2;โดยใช้แบบสอบถาม gro.allizom.snodda.secivres.:https:443ผลที่ได้คือการย้อนกลับของโดเมนตามโปรโตคอลที่ไม่ได้กลับและพอเพียงกับพอร์ตเช่น: อย่างที่คุณเห็นไม่มีการกล่าวถึงเส้นทางใด ๆ
Rob W

นี่คือเอกสารของdocument.domainAPI ที่กล่าวถึง: html.spec.whatwg.org/multipage/…
mltsy

149

พื้นที่จัดเก็บเซสชัน:

  1. ค่ายังคงมีอยู่ตราบเท่าที่หน้าต่างหรือแท็บที่เก็บไว้

  2. ค่าจะมองเห็นได้เฉพาะในหน้าต่างหรือแท็บที่สร้างขึ้น

ที่เก็บข้อมูลในเครื่อง:

  1. ค่ายังคงมีอยู่ของหน้าต่างและช่วงชีวิตของเบราว์เซอร์

  2. ค่าจะถูกแชร์ในทุกหน้าต่างหรือแท็บที่ทำงานที่จุดเริ่มต้นเดียวกัน

ดังนั้นการอ่านและทำความเข้าใจคู่คีย์ - ค่าแต่ละคู่จึงไม่ซ้ำกันสำหรับแต่ละโดเมนเนื่องจากพื้นที่เก็บข้อมูลในเครื่องยังคงมีค่าอยู่ในหน้าต่างหรือแท็บ


3
ขอบคุณ. คุณช่วยแชร์ลิงก์ไปยังข้อมูลอ้างอิงนี้ได้ไหม
Christophe

3
ลิงก์ด้านบน
เลิกใช้

ข้อสรุปอาจถูกต้อง แต่ไม่ใช่การให้เหตุผล แม้ว่าพื้นที่เก็บข้อมูลจะเป็นแบบต่อหน้า แต่ก็ยังคงมีอยู่ในหน้าต่าง / แท็บ
pyrocrasty
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.