具体描述
客户端数据存储赋予浏览器快速访问数据的能力,从而节省网络流量并减轻服务器的压力,同时使离线应用程序得以真正实现。本书从实用角度出发,以丰富的示例代码介绍Cookie、Web存储、IndexedDB等多种客户端存储技术,以及用于简化客户端存储的JavaScript库,如Lockr、Dexie和localForage等。
作者简介
作者简介:
Raymond Camden
是IBM的一名Developer Advocate,关注MobileFirst平台、混合移动开发、Node.js、HTML5和Web标准。他也是一名作家,并在许多会议和用户组中做过各种主题的演讲。欢迎访问他的博客:http://www.raymondcamden.com。
译者简介:
马德奎
数据库开发工程师,主要从事与机械制造行业MES、物料拉动相关的数据库设计及计算逻辑开发。
目录信息
第1章 客户端数据存储概述 1
第2章 使用Cookie 3
2.1 真的要讨论Cookie吗 3
2.2 使用Cookie 4
2.2.1 读取Cookie 5
2.2.2 删除Cookie 6
2.3 演示程序 6
2.4 使用开发者工具查看Cookie 10
2.5 浏览器支持和使用建议 11
第3章 使用Web存储 13
3.1 Web存储/本地存储 13
3.2 使用Web存储 14
3.3 演示程序 15
3.4 监听存储变化 19
3.5 使用开发者工具查看Web存储 21
3.6 浏览器支持和使用建议 23
第4章 使用IndexedDB 25
4.1 欢迎来到深度数据时代 25
4.2 IndexedDB关键术语 25
4.3 检查IndexedDB支持 26
4.4 使用数据库 27
4.5 使用对象存储 29
4.5.1 创建对象存储 29
4.5.2 定义主键 31
4.5.3 定义索引 33
4.6 操作数据 34
4.6.1 创建数据 35
4.6.2 读取数据 39
4.6.3 更新数据 41
4.6.4 删除数据 43
4.7 获取所有数据 44
4.8 关于IndexedDB的更多内容 49
4.8.1 存储数组 49
4.8.2 计算数据量 53
4.9 使用开发者工具查看IndexedDB 54
4.10 浏览器支持和使用建议 55
第5章 使用Web SQL 57
5.1 已废弃的规范 57
5.2 数据库基本术语 57
5.3 检查Web SQL支持 58
5.4 使用数据库 58
5.5 使用事务 60
5.6 使用开发者工具查看Web SQL 65
5.7 浏览器支持和使用建议 66
第6章 使用库简化客户端存储 67
6.1“使用库,卢克……” 67
6.2 使用Lockr 67
6.3 使用Dexie简化IndexedDB 72
6.4 使用localForage 78
6.5 更多选择 81
第7章 构建示例应用程序 83
7.1 让我们构建真实的应用程序! 83
7.2 示例数据 84
7.3 应用程序 87
7.4 代码 88
7.5 总结 93
作者介绍 94
封面介绍 94
· · · · · · (收起)
读后感
客户端数据存储赋予浏览器快速访问数据的能力,从而节省网络流量并减轻服务器的压力,同时使离线应用程序得以真正实现。本书从实用角度出发,以丰富的示例代码介绍Cookie、Web存储、IndexedDB等多种客户端存储技术,以及用于简化客户端存储的JavaScript库,如Lockr、Dexie和loc...
客户端数据存储赋予浏览器快速访问数据的能力,从而节省网络流量并减轻服务器的压力,同时使离线应用程序得以真正实现。本书从实用角度出发,以丰富的示例代码介绍Cookie、Web存储、IndexedDB等多种客户端存储技术,以及用于简化客户端存储的JavaScript库,如Lockr、Dexie和loc...
客户端数据存储赋予浏览器快速访问数据的能力,从而节省网络流量并减轻服务器的压力,同时使离线应用程序得以真正实现。本书从实用角度出发,以丰富的示例代码介绍Cookie、Web存储、IndexedDB等多种客户端存储技术,以及用于简化客户端存储的JavaScript库,如Lockr、Dexie和loc...
客户端数据存储赋予浏览器快速访问数据的能力,从而节省网络流量并减轻服务器的压力,同时使离线应用程序得以真正实现。本书从实用角度出发,以丰富的示例代码介绍Cookie、Web存储、IndexedDB等多种客户端存储技术,以及用于简化客户端存储的JavaScript库,如Lockr、Dexie和loc...
客户端数据存储赋予浏览器快速访问数据的能力,从而节省网络流量并减轻服务器的压力,同时使离线应用程序得以真正实现。本书从实用角度出发,以丰富的示例代码介绍Cookie、Web存储、IndexedDB等多种客户端存储技术,以及用于简化客户端存储的JavaScript库,如Lockr、Dexie和loc...
用户评价
我对这本书的评价是——它太“老派”了,但这种“老派”恰恰是其最大的优点。在当前这个追求快速迭代、热衷于追逐新框架的时代,很多技术书籍都忽略了基础的、底层的、经久不衰的知识。这本书却反其道而行之,用一种近乎严谨的工匠精神,去打磨每一个存储 API 的细节。它花了大量篇幅去解释为什么浏览器厂商最终选择了 B 树或者 LSM 树的变体来实现某些存储引擎(虽然没有深入到源码层面,但对其原理的剖析已经足够指导实践了)。对我这种对“Why”比“How”更感兴趣的开发者来说,这种对技术根源的探索是极其宝贵的。我特别欣赏它对缓存失效策略的深入探讨,不只是简单地讲 TTL(Time To Live),而是对比了 LRU、LFU 在不同负载场景下的性能表现差异,这对于构建高性能的资源缓存层至关重要。这本书的深度足以让经验丰富的老手感到扎实,同时其清晰的逻辑结构又能让初学者快速建立起正确的知识框架,它提供的是一种结构化的思考方式,而不是一堆零散的技巧。
天哪,我刚刚翻完这本《客户端存储技术》的目录,简直是心潮澎湃,它给我打开了一扇通往前端性能优化和用户体验提升的新大门!我原本以为我对浏览器存储机制已经算是了如指掌了,毕竟日常开发中经常用到 `localStorage` 和 `sessionStorage`。但这本书深入浅出地剖析了 IndexedDB 的复杂世界,特别是关于事务处理和异步操作的章节,简直是醍醐灌顶。作者没有仅仅停留在API的简单罗列上,而是非常扎实地讲解了底层的数据结构和性能考量,比如在处理大量结构化数据时,如何设计高效的索引来避免不必要的全表扫描。我尤其欣赏它对 Web SQL 的历史性回顾和对比分析,虽然这块技术栈基本被弃用了,但理解它为什么被淘汰,对于我们理解现代存储方案的设计哲学至关重要。书中还花了大量篇幅讨论了 PWA(渐进式网络应用)中的离线优先策略,详细拆解了 Service Worker 如何与缓存 API 协同工作,实现近乎原生的应用体验,这对于我们目前正在着手重构一个需要强大离线功能的内部工具来说,简直是雪中送炭。我迫不及待地想回去重构我们现有的数据同步逻辑,相信应用了书中的最佳实践后,应用的响应速度和稳定性会有质的飞跃。这本书的深度和广度,远超我预期的技术手册范畴,更像是一本实战性的架构指南。
说实话,当我拿起这本《客户端存储技术》时,并没有抱太大希望,市面上关于前端技术的书籍太多了,很多都只是对官方文档的重新包装。然而,这本书的行文风格却异常引人入胜,它没有那种枯燥的教科书腔调,反而带着一种资深工程师和读者面对面交流的亲切感。它最让我眼前一亮的是关于安全性的讨论。过去我总觉得客户端存储只要不存敏感密码就万事大吉了,但书中详细阐述了 CSRF(跨站请求伪造)攻击在某些存储机制上可能带来的隐患,以及如何利用 HTTP 响应头和正确的 Cookie 属性来构建更健壮的防御体系。特别是关于同源策略在不同存储API上的细微差别,讲得非常透彻,配上的图示清晰明了,让我对“安全沙箱”的概念有了更立体的认识。更妙的是,作者没有回避那些“灰色地带”,比如浏览器对存储容量的限制、不同设备间数据同步的挑战,以及如何优雅地处理存储空间不足的异常情况。读完后感觉自己对“存储”的理解从一个简单的“数据容器”,提升到了一个需要精细化管理的“资源池”的高度。这本书绝对是那种会让你忍不住想在关键章节做大量批注的实用主义宝典。
对于那些想从“会用”升级到“精通”客户端数据持久化方案的工程师来说,这本《客户端存储技术》无疑是一本里程碑式的作品。它最成功的一点,在于它清晰地划分了不同存储机制的应用边界。我们常常看到开发者因为习惯性地使用 `localStorage` 来存储大段 JSON 数据而导致页面卡顿,这本书通过详实的数据对比,直观地展示了这种做法的性能黑洞,并提供了使用 `Blob` 对象配合 `FileReader` 在更底层存储的优化方案。它对数据迁移和版本控制的章节也处理得非常到位,详细介绍了如何在不丢失用户数据的前提下平滑升级应用存储结构的版本,这是很多项目在迭代中会遇到的巨大痛点。这本书的语言风格非常克制而专业,没有夸张的宣传语,但字里行间都透露着作者对这门技术的深刻理解和敬畏。读完之后,我立刻感觉到自己对前端应用生命周期中数据流的掌控力提升了一个档次,不再是被存储机制牵着鼻子走,而是能主动地去设计最优的数据持久化策略。这是一本值得放在案头,随时翻阅参考的“兵法”。
坦白讲,这本书的阅读体验非常流畅,节奏感拿捏得极好。它避免了那种一上来就抛出大量晦涩术语的坏毛病,而是通过一系列精心设计的、贴近日常工作场景的小案例来引入新的概念。比如,它引入 IndexedDB 时,不是直接讲解 `open()` 方法,而是先描述了一个“如何高效存储用户在电商网站购物车中的复杂商品列表”的场景,然后自然而然地引出结构化数据存储的必要性。这种以问题驱动的学习路径,极大地降低了学习曲线。此外,作者在讨论跨域数据存取和共享的限制时,引用了最新的 W3C 草案和浏览器厂商的实现差异,这对于处理多站点、多租户架构的应用开发者来说,简直是救星。最让我惊喜的是,书中还涉及了 WebAssembly 与客户端存储的结合潜力,虽然只是初步探讨,但已经为我未来技术选型提供了新的思路。这本书的价值就在于,它不仅告诉你“如何做”,更重要的是,它让你理解“为什么这么做是最好的选择”,让你建立起一种基于深入理解的决策能力。
更像是一篇长篇博文汇聚而成的书,简单介绍了Web Storage、Indexed DB、Web SQL以及三方库,最后引入了实例,简单敲了下Indexed DB的代码实例,Web SQL已经是废弃的了,所以草草的翻了下。
两分不能再多了,毫无干货,介绍了有哪些web客户端存储的技术,写了几个样例。真的一篇文章就能写完了...
内容介绍刚刚好,关键的知识都有介绍,没有深入介绍,也没有性能分析,demo也写的很清楚,最喜欢第六章介绍的几个类库,确实很方便。作为一本入门参考书还不错。
太浅了,除了介绍了大部分用法,推荐了第三方库以外,没有其他内容了。其实想看看各种性能及详细一点使用场景分析。如果是以自己设计一个客户端存储库来写一章的话,感觉深度也就达到了。
太浅了,除了介绍了大部分用法,推荐了第三方库以外,没有其他内容了。其实想看看各种性能及详细一点使用场景分析。如果是以自己设计一个客户端存储库来写一章的话,感觉深度也就达到了。