JavaScript - localStorage và sessionStorage

by My Love

06/04/2019, 11:03 AM   |    08/04/2019, 8:24 AM   |    863   |    0

      Trong Javascript ta đã được tìm hiểu về cách lưu thông tin trình duyệt của người dùng với cookie, bài này sẽ giới thiệu hai cách lưu thông tin trên client khác nữa đó là localStoragesessionStorage.
1. localStorage trong Javascript
      localStorage lưu trữ thông tin trên trình duyệt của người dùng ( client ) vô thời hạn, nó chỉ mất đi khi người dùng xóa đi bằng cách clear history, localStorage cho phép lưu dữ liệu khoảng 5MB.
      Với localStorage thì một số trình duyệt phiên bản cũ sẽ không hỗ trợ nên bạn cần kiểm tra trước khi thực hiện bằng cách sau :
if (typeof(Storage) !== "undefined") {
    // Trình duyệt có hỗ trợ local storage
} else {
    //Trình duyệt không hỗ trợ local storage
}
Ta có thể thao tác với localStorage như sau :
Name Mô tả
localStorage.setItem(key, value) Thêm mới dữ liệu với key là tên và value là giá trị
localStorage.getItem(key) Lấy dữ liệu của localStorage với key là tên lúc ta thêm dữ liệu
localStorage.removeItem(key) Xóa dữ liệu của localStorage với key là tên lúc ta thêm dữ liệu
localStorage.clear() Xóa hết dữ liệu trong localStorage
localStorage.length Đếm tổng số lượng localStorage đã lưu trong trình duyệt

Ví dụ :
<html>
    <head>
        <title></title>
    </head>
    <body>
      <p id="all"></p>
      <p id="list"></p>
      <input type="text" id="name" placeholder="Nhập tên Storage" value="" />
      <input type="text" id="value" placeholder="Nhập value Storage" value="" />
      <input type="button" value="Thêm Storage" onclick="AddStorage()"/>
      <p>Lấy giá trị Storage :</p>
      <input type="text" id="GetValue" placeholder="Nhập tên Storage" value="" />
      <input type="button" value="Get Storage" onclick="GetStorage()"/>
      <p>Xóa Storage :</p>
      <input type="text" id="delete" placeholder="Nhập Tên Storage" value="" />
      <input type="button" value="Xóa Storage" onclick="DeleteStorage()"/>
      <p>Xóa tất cả Storage :</p>
      <input type="button" value="Xóa Tất Cả Storage" onclick="DeleteALL()"/>
      <script language="javascript">
           if (typeof(Storage) !== "undefined") {
                // Hiển thị tổng số Stogare
                Storagelength();
            } else {
                document.write('Trình duyệt không hỗ trợ localStorage !');
            }
            // Hàm thêm mới
            function AddStorage(){
                var Name = document.getElementById('name');
                var Value = document.getElementById('value');
                // Truyền tên và value từ hai textbox vào
                localStorage.setItem(Name.value, Value.value);
                // Gọi hàm đếm lại tổng số storage
                Storagelength();
                // đưa texbox về rỗng
                Name.value = '';
                Value.value = '';
                alert('Thêm mới thành công');
            }
            // Hàm lấy giá trị storage theo tên truyền vào
            function GetStorage(){
                var Name = document.getElementById('GetValue').value;
                // truyền vào tên storage muốn lấy giá trị
                var Value = localStorage.getItem(Name);
                alert('Giá trị của Storage có tên ' + Name + ' là : ' + Value);
                Storagelength();
            }
            // Hàm Xóa giá trị storage theo tên truyền vào
            function DeleteStorage(){
                var Delete = document.getElementById('delete').value;
                // truyền vào tên storage muốn xóa
                localStorage.removeItem(Delete);
                Storagelength();
                alert('Xóa thành công');
            }
            // Hàm xóa tất cả
            function DeleteALL(){
                // xóa tất cả
                localStorage.clear();
                Storagelength();
                alert('Xóa thành công');
            }
            // Hàm đếm tổng số Storage
            function Storagelength(){
                document.getElementById('all').innerHTML = 
                  'Tổng Storage là : ' + localStorage.length;
              
                // tạo vòng lặp in ra danh sách tên và value Storage 
				var data = 'Danh sách Storage: ';
                for (i = 0; i < localStorage.length; i++) {
                    data += (localStorage.key(i) + "=[" + localStorage.getItem(localStorage.key(i)) + "] ");
                }
				document.getElementById('list').innerHTML = data;

            }
        </script>
    </body>
</html>
Ví dụ trên mình làm tổng hợp luôn cho người dùng nhập vào và đã chú thích trong đó rồi nên sẽ không giải thích thêm.
2. sessionStorage trong Javascript
      sessionStorage tương tự như localStorage chỉ khác ở chỗ dữ liệu của sessionStorage sẽ mất khi bạn đóng trình duyệt. Vì vậy ví dụ bạn có thể làm tương tự như ví dụ trên chỉ thay sessionStorage cho localStorage là được.
Chú ý : Ngoài ra bạn có thể thêm vào lấy dữ liệu của sessionStorage và localStorage  bằng cách sau :
if (typeof(Storage) !== "undefined") {
    // Gán dữ liệu
    sessionStorage.KeyName= 'vnfree.net';
     
    // Lấy dữ liệu
    var domain = sessionStorage.KeyName; // vnfree.net
} else {
    document.write('Trình duyệt của bạn không hỗ trợ local storage');
}