相关文章
浏览器本地存储
一、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
| const request = indexedDB.open('myDatabase', 1);
request.onsuccess = function(event) { const db = event.target.result; const transaction = db.transaction(['customers'], 'readwrite'); 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; 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)的限制。