Phân biệt và cách sử dụng localStorage và sessionStorage

0
Dịch vụ dạy kèm gia sư lập trình

localStorage và sessionStorage là hai bộ nhớ cục bộ mà các ứng dụng web lưu trữ dữ liệu trên trình duyệt. Cả hai bộ nhớ này đều lưu dữ liệu theo định dạng key-value.

Sử dụng localStorage và sessionStorage để lưu dữ liệu thay thế cho giải pháp dùng Cookie sẽ mang lại những ưu điểm riêng, có thể kể đến như:

  • Những dữ liệu này chỉ lưu trên trình duyệt nên server không thể đọc được. Điều này sẽ giúp loại bỏ những vấn đề liên quan tới bảo mật mà giải pháp sử dụng Cookie gặp phải.
  • Cú pháp thao tác đơn giản.
  • Cho phép lưu trữ nhiều dữ liệu hơn (khoảng 10mb)

Hiện nay, hầu hết các trình duyệt đều hỗ trợ LocalStorage và SessionStorage, bạn thoải mái sử dụng mà không gặp bất cứ trở ngại nào về tính tương thích.

Giữa localStorage và sessionStorage, tùy tình huống mà bạn lựa chọn loại bộ nhớ cho hợp lý.

Bài viết này, mình sẽ giúp bạn phân biệt giữa hai giải pháp lưu trữ này, cũng như cách sử dụng chúng.

Phân biệt localStorage và sessionStorage

Về cơ bản thì cả localStorage và sessionStorage giống hệt nhau, cùng chung API để lưu/lấy dữ liệu/xóa.

Điểm khác biệt duy nhất chính là cơ chế duy trì dữ liệu của chúng. Đó là, với sessionStorage, dữ liệu chỉ được duy trì cho đến khi tab hoặc trình duyệt mở ứng dụng web đó bị đóng. Còn localStorage thì lưu trữ viễn viễn cho đến khi có hành động xóa dữ liệu từ ứng dụng web.

Chỉ có vậy thôi. Nên tùy vào mục đích sử dụng mà lựa chọn bộ nhớ phù hợp với ứng dụng web của bạn.

Lưu ý: Vì lý do bảo mật, cả hai bộ nhớ localStorage và sessionStorage này được trình duyệt phân vùng, cấp theo domain của ứng dụng web. Do đó, các ứng dụng web khác nhau (khác domain) sẽ không thể truy cập dược dữ liệu của nhau.

Phần tiếp theo, mình sẽ hướng dẫn cách sử dụng bộ nhớ localStorage (với sessionStorage hoàn toàn tương tự – vì dùng chung API mà)

Tạo và cập nhật dữ liệu trong localStorage

Như mình đã đề cập ở trên, dữ liệu được lưu trong localStorage dưới dạng cặp key-value. Trong đó, value về cơ bản chỉ lưu dưới dạng dữ liệu cơ bản như string, int…

Hình dưới đây minh họa dữ liệu được lưu trong localStorage như thế nào.

Cach-su-dung-localstorage

Để thêm dữ liệu, chúng ta sử dụng hàm setItem(<key>, <value>). Lưu ý nè, nếu bạn gọi hàm setItem mà có key trùng nhau thì dữ liệu lần gọi cuối sẽ đè lên các lần trước.

let key = 'Item 1';
localStorage.setItem(key, 'Value');

Để lấy dữ liệu ra sử dụng, chúng ta gọi hàm getItem(<key>).

hàm getItem(<key>).
let 

Xóa dữ liệu trong localStorage

Để xóa dữ liệu, có hai trường hợp:

  • Xóa theo key:
localStorage.removeItem(key);
  • Xóa toàn bộ dữ liệu có trong localStorage:
localStorage.clear();

Lưu dữ liệu phức tạp bằng cách convert sang JSON String

localStorage là bộ nhớ đơn giản nên nó chỉ hỗ trợ lưu các dữ liệu có kiểu nguyên thủy như String, Number… Trong trường hợp bạn muốn lưu cả một object thì sao?

Cách đơn giản là sử dụng JSON, convert object đó sang JSON string trước khi lưu vào localStorage.

Dưới đây là code ví dụ:

let myObj = { name: 'Dương Anh Sơn', website: 'https://vntalking.com' };
localStorage.setItem(“author”, JSON.stringify(myObj));

Còn khi muốn sử dụng, bạn chỉ cần lấy ra và convert ngược lại thành JSON object.

let item = JSON.parse(localStorage.getItem(“author”));
console.log(item.name); // output: Dương Anh Sơn

Trên đây là cách sử dụng localStorage để lưu dữ liệu trong các ứng dụng web. Nó rất hữu ích và được nhiều người sử dụng cho dự án web của mình. Bạn có thể tham khảo một tác dụng của localStorage trong ReactJS qua bài viết này: Cách tạo Custom React Hook để lưu State vào LocalStorage

Dịch vụ phát triển ứng dụng mobile giá rẻ - chất lượng
Bài trước5 công cụ phân tích dữ liệu Big data tốt nhất
Bài tiếp theoCách Debug TypeScript trên Visual Studio Code
Tên đầy đủ là Dương Anh Sơn. Tốt nghiệp ĐH Bách Khoa Hà Nội. Mình bắt đầu nghiệp coder khi mà ra trường chẳng xin được việc đúng chuyên ngành. Mình tin rằng chỉ có chia sẻ kiến thức mới là cách học tập nhanh nhất. Các bạn góp ý bài viết của mình bằng cách comment bên dưới nhé !

Bình luận. Cùng nhau thảo luận nhé!

avatar
  Theo dõi bình luận  
Thông báo