Skip to content

HTML5 Web 存储提供了一种在客户端(用户的浏览器)中存储数据的机制,使得开发者可以在用户的设备上保存数据而无需服务器端的支持。Web 存储主要包括两种存储方式:localStoragesessionStorage

1. localStorage

localStorage 用于存储持久化的数据,数据在浏览器会话结束后(即浏览器关闭后)依然存在。

特点:

  • 数据存储在浏览器中,没有过期时间,除非明确删除。
  • 不与具体的页面会话绑定,即使关闭并重新打开浏览器,数据仍然可用。
  • 每个域名最多可以存储 5MB 左右的数据(具体大小依浏览器而定)。

使用示例:

html
<!DOCTYPE html>
<html>
<head>
    <title>localStorage Example</title>
    <script>
        function saveData() {
            localStorage.setItem("username", document.getElementById("username").value);
        }

        function loadData() {
            var username = localStorage.getItem("username");
            if (username) {
                document.getElementById("display").innerText = "Welcome back, " + username;
            }
        }
    </script>
</head>
<body onload="loadData()">
    <h2>localStorage Example</h2>
    <input type="text" id="username" placeholder="Enter your name">
    <button onclick="saveData()">Save</button>
    <p id="display"></p>
</body>
</html>

2. sessionStorage

sessionStorage 用于存储会话数据,数据仅在浏览器会话(即浏览器窗口或标签页)期间可用,当会话结束(窗口或标签页关闭)时,数据会被清除。

特点:

  • 数据仅在当前浏览器窗口或标签页中可用。
  • 关闭窗口或标签页后,数据会被清除。
  • 每个域名最多可以存储 5MB 左右的数据(具体大小依浏览器而定)。

使用示例:

html
<!DOCTYPE html>
<html>
<head>
    <title>sessionStorage Example</title>
    <script>
        function saveData() {
            sessionStorage.setItem("sessionData", document.getElementById("sessionData").value);
        }

        function loadData() {
            var sessionData = sessionStorage.getItem("sessionData");
            if (sessionData) {
                document.getElementById("display").innerText = "Session Data: " + sessionData;
            }
        }
    </script>
</head>
<body onload="loadData()">
    <h2>sessionStorage Example</h2>
    <input type="text" id="sessionData" placeholder="Enter session data">
    <button onclick="saveData()">Save</button>
    <p id="display"></p>
</body>
</html>

Web 存储 API 方法

常用方法:

  • setItem(key, value): 存储数据,key 是数据的键,value 是数据的值。
  • getItem(key): 获取数据,key 是数据的键,返回与该键关联的值。
  • removeItem(key): 删除数据,key 是数据的键。
  • clear(): 清除所有存储的数据。

示例:

javascript
// localStorage 示例
localStorage.setItem('username', 'Alice');
var username = localStorage.getItem('username'); // 获取 'Alice'
localStorage.removeItem('username'); // 删除 'username' 数据
localStorage.clear(); // 清除所有数据

// sessionStorage 示例
sessionStorage.setItem('sessionID', '123456');
var sessionID = sessionStorage.getItem('sessionID'); // 获取 '123456'
sessionStorage.removeItem('sessionID'); // 删除 'sessionID' 数据
sessionStorage.clear(); // 清除所有数据

适用场景

  • localStorage 适用于需要长期保存的数据,例如用户偏好设置、应用配置等。
  • sessionStorage 适用于临时数据存储,例如表单数据、购物车信息等,只在当前会话期间需要。

通过使用 HTML5 Web 存储,开发者可以在客户端存储和读取数据,提升用户体验和应用性能。