HTML5 提供了几种在客户端存储用户数据的方法,包括localStorage、sessionStorage、Web SQL Database、IndexedDB 和 FileSystem API,这些方法允许开发者在用户的浏览器中存储数据,而无需将数据发送到服务器,这使得开发者能够创建更加丰富和交互式的 Web 应用,同时也提高了用户体验。

HTML5 数据存储

1、localStorage

localStorage 是一种在客户端存储键值对的方式,数据会持久保存,即使用户关闭了浏览器或者计算机也不会丢失,localStorage 的存储空间大约为 5MB,每个域名限制为 5MB,localStorage 只支持字符串类型的数据,如果需要存储其他类型的数据,需要先将其转换为字符串。

使用 localStorage 的基本语法如下:

// 存储数据
localStorage.setItem('key', 'value');

// 获取数据
var data = localStorage.getItem('key');

// 删除数据
localStorage.removeItem('key');

// 清除所有数据
localStorage.clear();

2、sessionStorage

sessionStorage 与 localStorage 类似,也是一种在客户端存储键值对的方式,但是 sessionStorage 的数据只在当前会话期间有效,当用户关闭浏览器或者计算机时,数据会被清除,sessionStorage 的存储空间和限制与 localStorage 相同。

使用 sessionStorage 的基本语法如下:

// 存储数据
sessionStorage.setItem('key', 'value');

// 获取数据
var data = sessionStorage.getItem('key');

// 删除数据
sessionStorage.removeItem('key');

// 清除所有数据
sessionStorage.clear();

3、Web SQL Database

Web SQL Database 是一种在客户端存储结构化数据的数据库,支持 SQL 语言进行数据操作,但是 Web SQL Database 已经被废弃,不再推荐使用。

4、IndexedDB

IndexedDB 是一种在客户端存储大量结构化数据的数据库,支持事务操作和异步请求,IndexedDB 的存储空间没有限制,但是受到浏览器和操作系统的限制,IndexedDB 支持多种数据类型,包括字符串、数字、日期、二进制数据等。

使用 IndexedDB 的基本语法如下:

// 打开数据库
var db = openDatabase('dbName', 'version', 'description', {});

// 创建一个对象存储空间
var store = db.createObjectStore('storeName', { keyPath: 'id' });

// 向对象存储空间中添加数据
store.add({ id: 1, name: '张三', age: 20 });

// 从对象存储空间中获取数据
var data = store.get(1);

// 更新对象存储空间中的数据
store.put({ id: 1, name: '李四', age: 21 });

// 删除对象存储空间中的数据
store.delete(1);

5、FileSystem API

FileSystem API 是一种在客户端访问文件系统的 API,允许开发者读取和写入文件,FileSystem API 可以用于创建、读取、修改和删除文件,以及获取文件的信息,FileSystem API 的存储空间受到浏览器和操作系统的限制。