HTML5 Web 存储学习笔记
什么是 Web 存储?
Web 存储指的是在浏览器中存储数据的技术,通过它可以在用户离线时保持应用程序状态。HTML5 提供了三种 Web 存储方式:Web Storage、Web SQL Database 和 IndexedDB。
Web Storage
Web Storage 是一种简单的键值存储机制,可以用来存储字符串类型的数据。它分为两种:localStorage 和 sessionStorage。
localStorage
localStorage 可以用来永久保存数据,即使用户关闭了浏览器或者关机也可以保持数据不变。以下是一个 localStorage 的实例:
javascriptCopy Code// 将数据存储到 localStorage 中
localStorage.setItem('name', 'binjie09');
// 从 localStorage 中获取数据
const name = localStorage.getItem('name');
console.log(name); // 输出 binjie09
sessionStorage
sessionStorage 则只能在当前会话期间(session)保存数据,当用户关闭浏览器或者标签页时,数据就会被清空。以下是一个 sessionStorage 的实例:
javascriptCopy Code// 将数据存储到 sessionStorage 中
sessionStorage.setItem('age', '18');
// 从 sessionStorage 中获取数据
const age = sessionStorage.getItem('age');
console.log(age); // 输出 18
Web SQL Database
Web SQL Database 是一种基于 SQL 的数据库技术,它允许在用户的浏览器中创建和管理数据库。以下是一个 Web SQL Database 的实例:
javascriptCopy Code// 打开或创建一个数据库
const db = openDatabase('mydb', '1.0', 'mydb', 1024 * 1024);
// 创建表
db.transaction(tx => {
tx.executeSql('CREATE TABLE IF NOT EXISTS users (id, name)');
});
// 插入数据
db.transaction(tx => {
tx.executeSql('INSERT INTO users (id, name) VALUES (?, ?)', [1, 'binjie09']);
});
// 查询数据
db.transaction(tx => {
tx.executeSql('SELECT * FROM users', [], (tx, result) => {
for (let i = 0; i < result.rows.length; i++) {
console.log(result.rows.item(i));
}
});
});
IndexedDB
IndexedDB 是一种 NoSQL 数据库技术,它使用对象存储来存储数据。以下是一个 IndexedDB 的实例:
javascriptCopy Code// 打开或创建一个数据库
const request = indexedDB.open('mydb', 1);
// 创建一个对象存储空间
request.onupgradeneeded = event => {
const db = event.target.result;
db.createObjectStore('users', { keyPath: 'id' });
};
// 插入数据
request.onsuccess = event => {
const db = event.target.result;
const tx = db.transaction('users', 'readwrite');
const store = tx.objectStore('users');
const user = { id: 1, name: 'binjie09' };
store.put(user);
};
// 查询数据
request.onsuccess = event => {
const db = event.target.result;
const tx = db.transaction(['users'], 'readonly');
const store = tx.objectStore('users');
const request = store.get(1);
request.onsuccess = event => {
const user = event.target.result;
console.log(user);
};
};
以上就是 HTML5 Web 存储的几种方式,根据实际需求选择不同的方式来存储数据。