PWA开发实战作者: [以]Tal Ater 出版时间:2019年版内容简介 本书通过实际操作帮助读者透彻地理解现代渐进式 Web 应用开发,指导读者学会利用原生应用的特性构建 Web 应用。主要内容包括:某酒店网站构建全流程,开发渐进式 Web 应用时一些需要重点考虑的因素,离线优先的 Web 应用的原则,渐进式 Web 应用为用户界面带来的一些新挑战和新机会,等等。目录前言 xi第 1 章 渐进式Web 应用介绍 11.1 Web 反击战 21.2 当前的移动领域 21.3 渐进式Web 应用的优势 41.4 浏览器标签页、Web 和service worker 6第 2 章 你的第 一个service worker 82.1 设置示例项目 82.2 欢迎来到哥谭帝国酒店 92.3 熟悉代码 102.4 当前的离线体验 112.5 创建你的第 一个service worker 132.6 什么是渐进增强 162.7 HTTPS 和service worker 162.8 从Web 获取内容 172.9 捕获离线请求 182.10 创建HTML 响应 192.11 理解service worker 作用域 212.12 小结 22第3 章 CacheStorage API 233.1 CacheStorage 是什么,不是什么 243.2 决定何时进行缓存 243.3 在CacheStorage 中存储请求 253.4 从CacheStorage 中取回请求 263.5 在示例应用缓存 273.6 匹配每个请求的正确响应 293.7 HTTP 缓存和HTTP 头 313.8 小结 31第4 章 service worker 生命周期和缓存管理 334.1 service worker 生命周期 364.2 service worker 的生命周期与waitUntil 的重要性 384.3 更新service worker 394.4 为什么需要管理缓存 404.5 缓存管理与清除旧缓存 424.6 重用已缓存的响应 464.7 配置服务器以提供正确的响应头部 474.8 开发者工具 484.8.1 控制台 484.8.2 清除缓存并刷新 484.8.3 检查CacheStorage 和IndexedDB 494.8.4 网络节流与模拟离线情况 494.8.5 Lighthouse 504.9 小结 50第5 章 拥抱离线优先 515.1 什么是离线优先 525.2 常用缓存模式 535.3 混合与匹配:创造新模式 555.4 规划缓存策略 575.5 实现缓存策略 595.6 App shell 架构 685.7 实现App shell 705.8 解锁成就 725.9 小结 73第6 章 使用IndexedDB 在本地存储数据 746.1 什么是IndexedDB 756.2 使用IndexedDB 776.2.1 打开数据库连接 776.2.2 数据库版本/ 修改对象存储 786.2.3 添加数据到对象存储 796.2.4 从对象存储中读取数据 806.2.5 IndexedDB 版本管理 816.2.6 使用游标读取对象 826.2.7 创建索引 846.2.8 使用索引读取数据 856.2.9 限制游标的范围 866.2.10 设置游标方向 876.2.11 更新对象存储中的对象 876.2.12 从对象存储删除对象 886.2.13 从对象存储中删除所有对象 896.2.14 处理冒泡IndexedDB 错误 896.3 SQL 忍者的IndexedDB 906.4 IndexedDB 实践 916.5 promise 式的数据库 986.6 IndexedDB 管理 1036.7 在service worker 中使用IndexedDB 1046.8 IndexedDB 生态系统 1056.8.1 PouchDB 1056.8.2 localForage 1066.8.3 Dexie.js 1066.8.4 IndexedDB Promised 1076.9 小结 107第7 章 使用后台同步保证离线功能 1087.1 后台同步是如何工作的 1097.2 SyncManager 1117.2.1 访问SyncManager 1117.2.2 注册事件 1127.2.3 sync 事件 1127.2.4 事件标签 1127.2.5 获取已注册sync 事件列表 1137.2.6 最后的机会 1137.3 传递数据给sync 事件 1147.3.1 在IndexedDB 中维护操作队列 1147.3.2 在IndexedDB 中维护请求队列 1167.3.3 传递数据给sync 事件标签 1187.4 给应用添加后台同步 1187.5 小结 125第8 章 使用postMessage() 在service worker 和页面之间通信 1268.1 窗口向service worker 通信 1278.2 service worker 向所有打开的窗口通信 1288.3 service worker 向特定窗口通信 1308.4 使用MessageChannel 保持通信渠道打开 1318.5 窗口间的通信 1338.6 从sync 事件向页面传递消息 1368.7 小结 137第9 章 可安装的Web 应用:占领主屏先机 1389.1 可安装的Web 应用 1399.2 浏览器如何决定何时显示应用安装横条 1409.3 剖析Web 应用清单 1419.4 各端兼容性 1459.5 小结 146第 10 章 推送通知 14710.1 推送通知的生命周期 14710.1.1 Notification API 14710.1.2 Push API 14810.1.3 Push+Notification 15010.2 创建通知 15010.2.1 请求通知权限 15010.2.2 显示通知 15310.2.3 为哥谭帝国酒店添加通知支持 15710.3 为用户订阅推送事件 15810.3.1 生成VAPID 公钥和私钥 16010.3.2 生成GCM 密钥 16110.3.3 创建新订阅 16210.3.4 为哥谭帝国酒店用户订阅推送消息 16410.4 从服务端发送推送事件 16610.5 监听推送事件并显示通知 16810.6 小结 174第 11 章 渐进式Web 应用的用户体验 17511.1 优雅与信任 17511.2 从service worker 传递状态 17611.3 使用Progressive UI KITT 通信 17811.4 渐进式Web 应用中的常见消息 18011.4.1 缓存完成 18011.4.2 页面已缓存 18011.4.3 操作失败,但会在用户恢复连接时完成 18111.4.4 启用通知 18111.5 选择正确的用词 18111.6 不要直奔主题 18211.7 渐进式Web 应用的设计 18411.7.1 设计应该反映条件的变化 18411.7.2 设计应该适应运行环境 18511.7.3 设计应该适应每种媒介的特殊性 18511.7.4 设计应该向用户注入信心并通知用户 18611.7.5 设计应该帮助用户和企业实现目标 18611.8 负责安装提示 18611.9 使用RAIL 测量性能并实现高性能 18711.10 小结 189第 12 章 渐进式Web 应用的未来 19012.1 使用Payment Request API 接受支付请求 19012.2 使用Credential Management API 进行用户管理 19212.3 WebGL 实时图像处理 19312.4 未来的语音识别API 19412.5 使用WebVR 在浏览器中实现虚拟现实 19412.6 轻松共享应用 19512.7 流畅的媒体播放UI 19612.8 下一个伟大时代 197附录A service worker:采用ES2015 的大好时机 198附录B 全页间隙式广告 201附录C CORS 与NO-CORS 202关于作者 204关于封面 204 上一篇: JavaScript+jQuery开发实战 戴雯惠 2019年版 下一篇: Python微服务开发 [法]Tarek Ziade 2019年版