Local Storage là một trong những kỹ thuật client caching thú vị được sử dụng tương đối phổ biến trong các trang web HTML5. Trong bài viết hôm nay, BizFly Cloud sẽ cùng bạn giải mã kỹ thuật này, cùng với những điều cần biết để sử dụng Local Storage một cách an toàn.
Local Storage là một trong những kỹ thuật client caching thú vị được sử dụng tương đối phổ biến trong các trang web HTML5. Trong bài viết hôm nay, BizFly Cloud sẽ cùng bạn giải mã kỹ thuật này, cùng với những điều cần biết để sử dụng Local Storage một cách an toàn.
Local Storage là một tính năng mới được trang bị cho HTML5, cho phép bạn lưu trữ dữ liệu cục bộ trên máy client thông qua JavaScript. Dữ liệu lưu trong Local Storage được lưu theo cặp key-value và không có thời hạn, nghĩa là mọi thứ vẫn sẽ được giữ lại kể cả khi cửa sổ trình duyệt đã đóng.
Những tính năng client caching như Local Storage được tạo ra để tăng hiệu suất website, khi dữ liệu người dùng không cần phải tải lại từ server liên tục trong quá trình duyệt web.
Local Storage là một tính năng mới được trang bị cho HTML5
Thoạt nhìn vào định nghĩa, rất dễ để cho rằng Local Storage trông không khác lắm so với Cookie, tuy nhiên có vài điểm khác biệt lớn giữa Cookie và Local Storage:
Local Storage có tính đồng bộ (synchronous), nghĩa là không thể truy cập song song mà nó sẽ đáp ứng từng lời gọi thực thi theo thứ tự.
Một điểm trừ lớn khác của Local Storage là nó không có phương thức nào để bảo vệ dữ liệu lưu trên trình duyệt. Bất cứ đoạn mã javascript nào trong website cũng có thể truy cập các giá trị lưu trữ trong Local Storage.
Local Storage có tính đồng bộ (synchronous)
Local Storage cung cấp 5 phương thức để quản lý việc lưu dữ liệu cho các ứng dụng web:
setItem()
Đây là phương thức để thêm cặp giá trị key-value vào local storage. Phần key là tên object dùng để truy cập, trong khi value chỉ có thể lưu trữ giá trị là một string. Ví dụ:
window.localStorage.setItem('name', 'Harry Potter');
Nếu muốn lưu trữ một object, bạn chỉ cần chuyển nó về dạng chuỗi JSON thông qua phương thức quen thuộc JSON.stringify() của JavaScript:
const person = {
name: "Harry Potter",
location: "Hogwarts",
}
window.localStorage.setItem('user', JSON.stringify(person));
getItem()
getItem() nhận vào key và trả về value tương ứng của object đã lưu trong Local Storage của browser. Ví dụ lệnh sau
window.localStorage.getItem('user');
Sẽ trả về chuỗi "{"name":"Harry Potter","location":"Hogwarts"}"
Để chuyển chuỗi này về lại dạng object để sử dụng,ta có lệnh JSON.parse()
JSON.parse(window.localStorage.getItem('user'));
removeItem()
Lệnh removeItem() nhận tham số là key và nó sẽ xóa object tương ứng khỏi Local Storage. Cú pháp
window.localStorage.removeItem('name');
Sẽ xóa object có key là ‘name’ khỏi bộ nhớ.
clear()
Lệnh này sẽ xóa toàn bộ Local Storage được tạo bởi website hiện tại
key()
Lệnh này nhận tham số là index và trả về tên key của object có index tương ứng trong Local Storage. key() thường được sử dụng để duyệt qua toàn bộ các object trong Local Storage.
localStorage là một tính năng thú vị của HTML5, tuy nhiên cũng có vài lưu ý khi sử dụng. Để có cái nhìn tổng quan hơn về localStorage, hãy điểm qua một số ưu điểm và nhược điểm của nó ngay dưới đây:
Local Storage được hỗ trợ bởi một số trình duyệt. Dưới đây là danh sách các trình duyệt và các phiên bản hỗ trợ JavaScript localStorage:
Những lưu ý khi sử dụng Local Storage
Một trong những đặc điểm của Local Storage là nó không tự xóa khi đóng trình duyệt. Do đó nếu muốn hủy dữ liệu sau mỗi phiên, HTML5 cung cấp một phương thức khác là Session Storage. Về cơ bản Session Storage giống hệt Local Storage nhưng nó chỉ lưu dữ liệu cho một phiên làm việc, khiến chúng là những khái niệm hoàn toàn khác nhau và có mục đích sử dụng khác nhau.
Local Storage là một tính năng hay của HTML5, giúp việc cache dữ liệu trên trình duyệt dễ dàng hơn và nhiều không gian hơn cho đa dạng mục đích sử dụng. Tuy nhiên không nên lạm dụng Local Storage để lưu trữ thông tin nhạy cảm do những hạn chế bảo mật.
window.localStorage.setItem('name', 'Harry Potter');
Hi vọng bài viết đã đem đến cho bạn những thông tin hữu ích, hãy tiếp tục theo dõi BizFly Cloud để cập nhật những công nghệ mới nhất cùng chúng tôi mỗi ngày.
All the options and events can be found in official documentation