2011-12-14 34 views
17

Tôi đã học được sự khác biệt giữa sessionStorage (tồn tại trong phiên) và localStorage (tồn tại vĩnh viễn nếu không bị xóa).Khi nào tôi nên sử dụng html5 sessionStorage?

Tôi có thể thấy rằng localStorage có thể được sử dụng làm phiên bản cookie tốt hơn. (kích thước lớn hơn, không di chuyển đến máy chủ cho mỗi yêu cầu HTTP như cookie).

Nhưng đối với sessionStorage, tôi đang suy nghĩ khi nào tôi nên sử dụng nó một cách hiệu quả?

Tôi đã nghĩ về đầu vào của người dùng vào trường văn bản trong trangA và sau đó chuyển sang trangB trong cùng một tab hoặc cửa sổ trình duyệt, pageB có thể tra cứu sessionStorage.

Tôi thực sự không thể mở rộng dự đoán của mình nhiều hơn kịch bản ở trên. Bất cứ ai có thể cho tôi biết làm thế nào có thể sessionStorage được sử dụng?

Trả lời

19

Với giao diện động theo định hướng ajax, rất nhiều lần không có gì lưu trữ trạng thái hiện tại của giao diện trông như thế nào (ví dụ như tab nào được chọn). sessionStorage có thể được sử dụng để lưu trữ trạng thái của giao diện, vì vậy khi quay lại trang, bạn có thể khôi phục màn hình theo cách người dùng đang xem nó.

Sử dụng khác sẽ là nếu một số trang sâu bạn đang làm việc trên một đối tượng duy nhất, bạn có thể lưu trữ id như biến toàn cục: currentInvoiceId.

Cài đặt người dùng cần thiết trên mọi trang, như bố cục hoặc mẫu đặc biệt, có thể được tải lên một lần và đặt vào sessionStorage để dễ dàng truy cập.

Một số điều bạn chỉ muốn người dùng nhìn thấy một lần cho mỗi lần đăng nhập, như cửa sổ bật lên tin tức. Bạn có thể lưu trữ rằng họ đã nhìn thấy nó đã có trong sessionStorage. Điều này cũng sẽ làm việc cho các hành động mà bạn chỉ muốn người dùng thực hiện một lần cho mỗi lần đăng nhập.

Đó là một cách thay thế tốt để chuyển dữ liệu giữa các trang bằng cách sử dụng các trường Viewstate, ẩn <input> hoặc tham số URL.

+1

Thú vị, cuối cùng tôi có thể xóa các đầu vào hoặc div bị ẩn khỏi các trang HTML :) –

+0

Có sử dụng tốt cho sessionStorage trong các ứng dụng trang đơn có thể lưu trữ dễ dàng trong bộ nhớ (đối tượng javascript) không? –

+0

@ PauFracés Có thể chỉ giữ trạng thái trong trường hợp trình duyệt bị treo. Sucks để điền vào một mẫu đơn, có trình duyệt của bạn sụp đổ, và mất tất cả mọi thứ. – ThinkingStiff

Các vấn đề liên quan