← Blog
Web Storage
August 10, 2013 • 2 min read
Để lưu trữ thông tin ở phía trình duyệt, trước đây ta vẫn thường dùng cookies. Nhưng cookies vẫn còn một số hạn chế:
- Khi truyền tải, cookies mang theo HTTP request, đều này sẽ làm chậm đi ứng dụng web của bạn.
- Giới hạn dung lượng thấp chỉ 4 KB.
- Thật khó để duy dõi nhiều cookies trên một trang web.
HTML5 cung cấp một API mới để có thể lưu trữ dữ liệu ở phía client với nhiều cải thiện cho cookies là web storage. Một số ưu điểm web storage so với cookies:
- Dung lượng lên đến 5 MB (trình duyệt Google Chrome, Mozilla Firefox, Opera), 10 MB (Internet Explorer)
- Dữ liệu web storage sẽ không được truyền đến máy chủ
- Cung cấp hai cách lưu trữ khác nhau: local storage và session storage
Web Storage
Web Storage hiện tại đã hỗ trợ rất nhiều trình duyệt.
Web Storage cung cấp các phương thức sau. Ở đây mình sử dụng localStorage, bạn có thể sử dụng sessionStorage nếu muốn.
localStorage.setItem('key', 'value') // Lưu trữ dữ liệu localStorage.getItem('key') // Lấy dữ liệu localStorage.removeItem('key') // Xóa dữ liệu lưu trên key localStorage.clear() // Xóa tất cả dữ liệu lưu bởi web storage
Sử dụng Local Storage
Dữ liệu trên local storage sẽ được tự động chuyển sang kiểu ‘string’ trên trình duyệt. Tuy nhiên local storage lại hoạt động rất tốt với đối tượng trong JavaScript.
// Lưu trữ một đối tượng localStorage.setItem('key', { name: 'value' }) console.log(typeof localStorage.getItem('key')) // string // Lữu trữ một kiểu số localStorage.setItem('key', 1) console.log(typeof localStorage.getItem('key')) // string // Lưu trữ một đối tượng localStorage.setItem('key', JSON.stringify({ name: 'Dang Thanh', age: 24 })) var obj = JSON.parse(localStorage.getItem('key')) console.log(obj.name) // value console.log(obj.age) // value