【浏览器】浏览器本地存储

浏览器本地存储

相关文章

浏览器本地存储


一、LocalStorage

  • 特点:LocalStorage 是浏览器提供的一种持久化存储方案,数据存储在浏览器的本地文件中,即使关闭浏览器也能保持数据不丢失。
  • 容量:通常每个域名的 LocalStorage 容量为 5MB 左右。
  • 用途:适用于存储较小量的数据,例如用户偏好设置、登录凭据等。
  • 安全:受到同源策略(Same Origin Policy)的限制。

二、SessionStorage

  • 特点:SessionStorage 也是浏览器提供的一种本地存储方案,与 LocalStorage 类似,但数据在会话结束(关闭浏览器标签页)后会被清除。
  • 容量:SessionStorage 的容量也通常为 5MB 左右。
  • 用途:适用于存储临时性的数据,例如表单数据、临时状态等。
  • 安全:受到同源策略(Same Origin Policy)的限制。

三、IndexedDB

  • 特点:IndexedDB 是一种功能强大的客户端存储数据库,可以存储大量结构化数据,并提供了丰富的查询和索引功能。
  • 容量:IndexedDB 的容量通常比 LocalStorage 和 SessionStorage 大得多,但具体容量限制因浏览器而异。
  • 用途:适用于需要存储大量数据、复杂数据结构或者需要进行高级查询和索引的场景。
  • 安全:受到同源策略(Same Origin Policy)的限制。

使用案例

这个示例演示了如何使用 IndexedDB 来创建一个名为 myDatabase 的数据库,并在其中创建一个名为 customers 的对象存储空间。然后,进行了数据的添加、查询、更新和删除操作。最后,通过事务的 oncomplete 事件来关闭数据库连接。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
// 打开或创建名为 "myDatabase"、版本号为 1 的 IndexedDB 数据库
const request = indexedDB.open('myDatabase', 1);

// 数据库打开成功时的回调函数
request.onsuccess = function(event) {
// 获取数据库对象
const db = event.target.result;

// 开启一个读写事务,访问名为 "customers" 的对象存储空间
const transaction = db.transaction(['customers'], 'readwrite');
// 获取名为 "customers" 的对象存储空间
const objectStore = transaction.objectStore('customers');

// 向对象存储空间添加数据
objectStore.add({ id: 1, name: 'John Doe', email: 'john@example.com' });

// 获取数据
const getRequest = objectStore.get(1);
// 获取数据成功时的回调函数
getRequest.onsuccess = function(event) {
const customer = event.target.result;
console.log('Customer:', customer);
};

// 更新数据
const updateRequest = objectStore.put({ id: 1, name: 'Jane Doe', email: 'jane@example.com' });
// 更新数据成功时的回调函数
updateRequest.onsuccess = function(event) {
console.log('Data updated successfully');
};

// 删除数据
const deleteRequest = objectStore.delete(1);
// 删除数据成功时的回调函数
deleteRequest.onsuccess = function(event) {
console.log('Data deleted successfully');
};

// 事务完成时的回调函数,关闭数据库连接
transaction.oncomplete = function(event) {
db.close();
};
};

// 数据库首次创建或版本更新时的回调函数
request.onupgradeneeded = function(event) {
// 获取数据库对象
const db = event.target.result;

// 创建一个名为 "customers" 的对象存储空间,并指定 "id" 字段为主键
const objectStore = db.createObjectStore('customers', { keyPath: 'id' });

// 为对象存储空间创建索引
objectStore.createIndex('name', 'name', { unique: false });
objectStore.createIndex('email', 'email', { unique: true });
};

四、Cookies

  • 特点:Cookies 是浏览器存储的一种方式,每个 Cookie 的大小通常受到限制,并且会随着每次 HTTP 请求发送到服务器端。
  • 容量:每个 Cookie 通常有 4KB 左右的容量限制。
  • 用途:Cookies 通常用于存储少量的文本数据,并且可以设置过期时间和域名,用于实现用户登录状态、跟踪用户行为等功能。
  • 安全:受到同源策略(Same Origin Policy)的限制。

喜欢这篇文章?打赏一下支持一下作者吧!
【浏览器】浏览器本地存储
https://www.cccccl.com/20210402/浏览器/浏览器本地存储/
作者
Jeffrey
发布于
2021年4月2日
许可协议