Thông số W3C cho Lưu trữ web (được gọi chung là lưu trữ cục bộ HTML5, mặc dù đây là từ khóa sai) cho phép tác nhân người dùng thực thi giới hạn kích thước, được khuyến nghị là 5MB. Theo nhiều nguồn khác nhau tôi đã tìm thấy trên mạng, rất nhiều trình duyệt hiện đại sử dụng giới hạn 5MB này, ngoại trừ IE cung cấp 10MB.Làm cách nào để đối phó với giới hạn kích thước cho Lưu trữ web?
Trước tiên, tôi muốn biết, giới hạn này có áp dụng cho tổng số kết hợp localStorage và sessionStorage hay riêng lẻ không?
Bây giờ, làm cách nào để chúng tôi thực sự đối phó với các giới hạn này? Có cách nào để tìm ra giới hạn cho một trình duyệt cụ thể không? Có trang web nào duy trì thống kê trên các trình duyệt khác nhau không? Có ngoại lệ khi trình duyệt vượt quá giới hạn không? Có cách nào dễ dàng để kiểm tra ngoại lệ này "lớp học" trong các trình duyệt khác nhau không?
Bạn đã tìm thấy một câu trả lời tốt để điều này? –
Không, không thực sự. Để làm cho vấn đề tồi tệ hơn, có một trình duyệt chính (tôi quên cái nào) hiển thị một hộp thoại nếu trang web cố gắng vượt quá giới hạn lưu trữ. Không có cách nào để nhà phát triển web tùy chỉnh thông báo này, vì vậy nó sẽ chỉ nói điều gì đó như "trang web này đang cố gắng vượt quá giới hạn bộ nhớ", đó là trải nghiệm người dùng rất xấu. Do đó, công ty của tôi đã quyết định không sử dụng bộ nhớ cục bộ cho trường hợp sử dụng của chúng tôi và chỉ sử dụng cơ chế lưu trong bộ nhớ cache của trình duyệt mặc định thay vì URL "trông giống như" tệp javascript nhưng thực sự chỉ chứa định nghĩa đối tượng được tạo động. – Kidburla
Tôi đã viết một mô-đun mà sẽ chăm sóc nói chuyện với localStorage theo một cách để nó không bao giờ vượt quá mức tối đa cho phép, nếu nó vượt quá 4mb nó làm trống các mục cũ nhất cho đến khi nó xuống dưới 3mb. số lượng byte được sử dụng tại mỗi thời điểm được cập nhật mỗi lần hệ thống thêm hoặc xóa khỏi nó, nghĩa là bạn có thể nhận được số lượng byte hiện đang sử dụng với thời gian tìm kiếm big-o 1. –