Tôi nghĩ bạn đang đặt câu hỏi sai. Đó là nhanh hơn trong một phiên hoạt động về cơ bản là không thích hợp, bởi vì cả hai được lưu trữ cục bộ, và tra cứu địa phương là gần như tức thời (vs tra cứu từ xa). (Một lưu ý: không phải tất cả các trình duyệt đều dựa vào các tiêu đề bộ nhớ đệm, nhưng thường nó nghiêng về phía bộ đệm ẩn hơn là bộ đệm ẩn.)
Tuy nhiên, tình huống ví dụ của bạn là giả định bộ nhớ cache của trình duyệt không bao giờ bị xóa . Điều này là sai nói chung: không chỉ người dùng có thể xóa bộ nhớ cache bất cứ khi nào (hoặc cài đặt tự động xóa), nhưng chính trình duyệt có thể quyết định xóa dữ liệu được lưu trong bộ nhớ cache của trang web theo ý muốn (tùy thuộc vào không gian, thường).
Thay vào đó, bạn nên suy nghĩ về tuổi thọ của dữ liệu và tần suất người dùng sẽ tìm kiếm lại dữ liệu đó.
Nếu thông tin này là thông tin mà đôi khi họ chỉ có thể truy cập, thì bạn nên dựa vào cơ chế lưu trong bộ nhớ cache của trình duyệt. Điều này cho phép trình duyệt loại bỏ nó khi nó không còn cần thiết nữa.
Tuy nhiên, nếu dữ liệu là thứ được tải thường xuyên hoặc cần mỗi lượt truy cập vào trang web, thì bạn nên sử dụng localStorage
. Bộ nhớ cục bộ là không phải được xóa tự động với bộ nhớ cache và trên thực tế thường chỉ bị làm trống nếu người dùng xóa cookie cho trang web đó. Điều này cho phép thông tin được giữ lại lâu hơn nữa, ngay cả khi trang web không được truy cập đủ thường xuyên để giữ cho bộ nhớ cache được làm mới. Nhưng bạn sẽ đột nhiên chịu trách nhiệm duy trì cơ sở dữ liệu thông tin đó.
Cuối cùng, câu hỏi quan trọng nhất: với tư cách là nhà phát triển, là thương mại có lợi cho chi phí phát triển một giải pháp dựa trên phức tạp hơn localStorage
có đáng giá không? Nói cách khác, bạn sẽ thấy đủ lợi ích cho người dùng cuối trong bộ nhớ đệm tra cứu 1-2s hay bạn đang nói về một lượng thông tin đáng kể, nơi người dùng sẽ thấy mức tăng 30 giây.
Ví dụ, đối với một ứng dụng web phức tạp, lớn, tôi đã phát triển một thời gian, tôi đã sử dụng localStorage
để lưu trữ số lượng lớn thư viện JS. Khi truy cập lại trang web, chúng được phân tích cú pháp đơn giản từ bản sao cục bộ (sau khi xác minh hàm băm). Giải pháp này cho phép một loạt các trình duyệt để giảm đáng kể thời gian khởi động, ngay cả khi bộ nhớ cache đã bị xóa. (Tôi không nói đây là cách sử dụng tốt, nhưng nó hoạt động vào thời điểm đó.)