Ngoài việc không liên tục và chỉ nằm trong phạm vi cửa sổ hiện tại, còn có bất kỳ lợi ích nào (hiệu suất, truy cập dữ liệu, v.v.) đối với Lưu trữ phiên qua Lưu trữ cục bộ không?
Ngoài việc không liên tục và chỉ nằm trong phạm vi cửa sổ hiện tại, còn có bất kỳ lợi ích nào (hiệu suất, truy cập dữ liệu, v.v.) đối với Lưu trữ phiên qua Lưu trữ cục bộ không?
Câu trả lời:
localStorage và sessionStorage đều mở rộng Storage . Không có sự khác biệt giữa chúng ngoại trừ mục đích "không kiên trì" dự định của sessionStorage
.
Đó là, dữ liệu được lưu trữ localStorage
vẫn tồn tại cho đến khi bị xóa rõ ràng . Những thay đổi được thực hiện được lưu và có sẵn cho tất cả các lượt truy cập hiện tại và tương lai vào trang web.
Đối với sessionStorage
, thay đổi chỉ có sẵn trên mỗi tab. Các thay đổi được thực hiện được lưu và có sẵn cho trang hiện tại trong tab đó cho đến khi nó được đóng lại. Khi nó được đóng lại, dữ liệu được lưu trữ sẽ bị xóa.
Sự khác biệt duy nhất là localStorage có thời gian hết hạn khác nhau, sessionStorage
sẽ chỉ có thể truy cập được trong khi và bởi cửa sổ tạo ra nó đang mở. localStorage
kéo dài cho đến khi bạn xóa nó hoặc người dùng xóa nó.
Cho phép nói rằng bạn muốn lưu tên người dùng đăng nhập và mật khẩu mà bạn muốn sử dụng sessionStorage
trên localStorage
vì những lý do an ninh (ví dụ. Một người khác truy cập vào tài khoản của họ sau một thời gian).
Nhưng nếu bạn muốn lưu cài đặt của người dùng trên máy của họ thì có lẽ bạn sẽ muốn localStorage
. Tất cả trong tất cả:
localStorage
- sử dụng để sử dụng lâu dài.
sessionStorage
- sử dụng khi bạn cần lưu trữ một số thứ thay đổi hoặc tạm thời
Vài điểm khác có thể hữu ích để hiểu sự khác biệt giữa lưu trữ cục bộ và phiên
Cả lưu trữ cục bộ và lưu trữ phiên đều nằm trong phạm vi nguồn gốc tài liệu, vì vậy
https://mydomain.com/
http://mydomain.com/
https://mydomain.com:8080/
Tất cả các URL trên sẽ không chia sẻ cùng một bộ lưu trữ. (Đường dẫn thông báo của trang web không ảnh hưởng đến bộ nhớ web)
Lưu trữ phiên là khác nhau ngay cả đối với tài liệu có cùng chính sách gốc được mở trong các tab khác nhau, do đó, cùng một trang web mở trong hai tab khác nhau không thể chia sẻ cùng một lưu trữ phiên.
Cả lưu trữ cục bộ và phiên cũng được giới hạn bởi các nhà cung cấp trình duyệt . Vì vậy, dữ liệu lưu trữ được lưu bởi IE không thể được đọc bởi Chrome hoặc FF.
Hi vọng điêu nay co ich.
Sự khác biệt chính giữa localStorage
và sessionStorage
là sessionStorage
là duy nhất cho mỗi tab. Nếu bạn đóng tab, sessionStorage
nó sẽ bị xóa localStorage
. Ngoài ra, bạn không thể giao tiếp giữa các tab :)
Một khác biệt tinh tế là ví dụ trên Safari (8.0.3) localStorage
có một giới hạn của 2551 ký tự k nhưng sessionStorage
có lưu trữ không giới hạn
Trên Chrome (v43) cả hai localStorage
và sessionStorage
được giới hạn ở 5101 k ký tự (không có sự khác biệt giữa chế độ bình thường / ẩn danh)
Trên Firefox cả hai localStorage
và sessionStorage
được giới hạn ở 5120 k ký tự (không có sự khác biệt giữa chế độ bình thường / riêng tư)
Không có sự khác biệt về tốc độ nào :)
Cũng có vấn đề với Mobile Safari và Mobile Chrome, Safari Chế độ riêng tư & Chrome có không gian tối đa là 0KB
sessionStorage
cũng giống như localStorage
, ngoại trừ việc nó lưu trữ dữ liệu chỉ trong một phiên và nó sẽ bị xóa khi người dùng đóng cửa sổ trình duyệt đã tạo ra nó.
hiệu suất khôn ngoan, các phép đo (thô) của tôi không tìm thấy sự khác biệt nào trên 1000 lần ghi và đọc
Bảo mật khôn ngoan, theo trực giác có vẻ như localStore có thể bị đóng cửa trước sessionStore, nhưng không có bằng chứng cụ thể - có lẽ ai đó khác?
chức năng khôn ngoan, đồng tình với digitalFresh ở trên
Lưu trữ phiên Ya và lưu trữ cục bộ giống nhau về hành vi ngoại trừ một lưu trữ cục bộ sẽ lưu trữ dữ liệu cho đến khi và trừ khi người dùng xóa bộ nhớ cache và cookie và dữ liệu lưu trữ phiên sẽ giữ lại trong hệ thống cho đến khi chúng tôi đóng phiên i, e cho đến khi chúng tôi đóng phiên lưu trữ phiên tạo cửa sổ.
Theo tôi, ưu điểm của lưu trữ phiên so với lưu trữ cục bộ là nó có dung lượng không giới hạn trong Firefox và sẽ không tồn tại lâu hơn phiên. (Tất nhiên nó phụ thuộc vào mục tiêu của bạn là gì.)
Lưu trữ cục bộ: Nó lưu trữ dữ liệu thông tin người dùng mà không hết hạn, dữ liệu này sẽ không bị xóa khi người dùng đóng các cửa sổ trình duyệt, nó sẽ có sẵn cho ngày, tuần, tháng và năm.
//Set the value in a local storage object
localStorage.setItem('name', myName);
//Get the value from storage object
localStorage.getItem('name');
//Delete the value from local storage object
localStorage.removeItem(name);//Delete specifice obeject from local storege
localStorage.clear();//Delete all from local storege
Lưu trữ phiên: Giống như ngày lưu trữ cục bộ ngoại trừ việc nó sẽ xóa tất cả các cửa sổ khi cửa sổ trình duyệt đóng bởi người dùng web.
//set the value to a object in session storege
sessionStorage.myNameInSession = "Krishna";
Đọc thêm Bấm
sessionStorage
duy trì một vùng lưu trữ riêng cho từng nguồn gốc nhất định có sẵn trong suốt thời gian của phiên trang (miễn là trình duyệt được mở, bao gồm tải lại và khôi phục trang)
localStorage
làm điều tương tự, nhưng vẫn tồn tại ngay cả khi trình duyệt được đóng và mở lại.
Tôi lấy cái này từ https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API