最近想自己造一个类似记事本的小轮子。因为感觉没必要用上复杂的后端(同时自己也懒),就打算把数据都交给前端来存储。说到前端存储,最先想到的肯定是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就能很快上手。已被废弃的规定。移动端支持不错。 | - |
网友评论