Phạm vi của sessionStorage và localStorage


105

Tôi đọc một số tài liệu về sessionStorage và localStorage, nhưng tôi không hiểu phạm vi là gì: tên miền, một trang cụ thể?

Ví dụ: nếu tôi có các trang sau:

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

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

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

Và nếu trên mỗi trang trên tôi chạy (với idvalue là giá trị trong chuỗi truy vấn):

localStorage.setItem('ID',idvalue);

Tôi sẽ kết thúc với 3 giá trị khác nhau được lưu trữ hay các giá trị sẽ ghi đè lẫn nhau?

Câu trả lời:


87

Các giá trị sẽ ghi đè lẫn nhau. Mỗi cặp khóa-tên là duy nhất cho một giao thức và miền, bất kể đường dẫn.

Miền bị ảnh hưởng có thể được thay đổi thông qua thuộc document.domaintính.

  • sub.example.com-> example.comcó thể (tên miền phụ)
  • sub.example.com-> other.example.comkhông được

Cảm ơn! Bạn có tài liệu tham khảo để giới thiệu, giải thích chi tiết về localStorage không?
Christophe

2
@Christophe MDN: StorageW3c: Web Storage .
Rob W

1
tốt, ngay cả sau khi đọc trang MDN tôi vẫn không thể tìm thấy câu trả lời cho câu hỏi của mình ... Dù sao, cảm ơn một lần nữa!
Christophe

1
@Christophe Tôi đã xác minh các tuyên bố của mình một thời gian trước bằng cách xem cơ sở dữ liệu sqlite (3) được gọi webappsstore.sqlitetrong thư mục hồ sơ Firefox của tôi, sử dụng truy vấn SELECT scope FROM webappsstore2;. Kết quả là sự đảo ngược của tên miền, tiếp theo là giao thức không đảo ngược, và sufficed với cổng, ví dụ như: gro.allizom.snodda.secivres.:https:443. Như bạn có thể thấy, không có đề cập đến bất kỳ con đường nào.
Rob W

Đây là tài liệu về document.domainAPI được đề cập: html.spec.whatwg.org/multipage/…
mltsy

149

Lưu trữ phiên:

  1. Giá trị chỉ tồn tại miễn là cửa sổ hoặc tab mà chúng được lưu trữ.

  2. Giá trị chỉ hiển thị trong cửa sổ hoặc tab đã tạo chúng.

Lưu trữ cục bộ:

  1. Giá trị vẫn tồn tại trong cửa sổ và vòng đời của trình duyệt.

  2. Giá trị được chia sẻ trên mọi cửa sổ hoặc tab đang chạy ở cùng một nguồn.

Vì vậy, bằng cách đọc và hiểu điều này, mỗi cặp khóa-giá trị là duy nhất cho mỗi miền, bởi vì bộ nhớ cục bộ duy trì các giá trị trên cửa sổ hoặc tab.


3
Cảm ơn. Bạn có thể chia sẻ liên kết đến tài liệu tham khảo này?
Christophe

3
Liên kết tại trên là không còn tồn tại này là một nguồn lực lớn: sitepoint.com/an-overview-of-the-web-storage-api
chrisjlee

Kết luận có thể đúng, nhưng không phải là suy luận. Ngay cả khi bộ nhớ là mỗi trang, nó vẫn có thể tồn tại trên các cửa sổ / tab.
pyrocrasty
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.