最近想自己造一个类似记事本的小轮子因为感觉没必要用上复杂的后端(同时自己也懒), 就打算把数据都交给前端来存储说到前端存储, 最先想到的肯定是 localStorage 系列(还有 sessionStorage), 只是 localStorage 只有读取功能, 显然是无法满足我的需求的
于是打算上网搜索一下相关的技术, 期望可以找一个类似于 SQLLite 的工具在搜索的过程中, 正好发现了这本书客户端存储技术虽然是只有 100 页左右的小薄本, 但对于想要了解一下客户端存储相关技术的我来说正好合适于是便抽空读了一遍, 做了一个简单的读书笔记
客户端存储技术. png
图片看不清的朋友可以直接看我的脑图: 客户端存储技术
书中主要介绍了目前常用的客户端存储技术以及各个存储技术的优缺点和适用范围
当然, 客户端存储最主要的目的是减轻服务端的压力, 而不是去代替服务端存储 (毕竟性能和安全性上是是做不到的) 如果是作为小的离线应用的话, 倒是不妨可以用一下
目前客户端存储技术可以简单用下表来总结
编号 | 技术 | 说明 | 类库 |
---|---|---|---|
1 | Cookie | 最 “古老” 的存储方式。通过 document.cookie 就能进行设置与访问。一般如网站记住登录状态会利用 Cookie(会设置过期时间),敏感信息不建议存储在 Cookie 中。安全系数比较低。 | MDN 上有相关的类库,可以简化 Cookie 的操作。 |
2 | LocalStorage/SessionStorage | 比较常见的客户端存储。有大小限制 5MB。一个域名对应一个 Storage,可以持久化的存放一些数据,同样不建议存放敏感信息。 | Lockr |
3 | IndexedDB | 无大小限制(理论上)。以对象的形式存放数据(很像 MongoDB)。原生 API 很相对比较复杂,特别是查询部分。使用库可以简化操作。目前对移动端的支持还不是很好(特别是 Safari),PC 端支持很好。 | Dexie、PouchDB |
4 | webSQL | 比 IndexedDB 出现时间要早。使用前需要设置数据库大小。具体操作与 SQL 相同,熟悉 SQL 就能很快上手。已被废弃的规定。移动端支持不错。 | - |
来源: http://www.jianshu.com/p/a363b60cefcd