《PWA开发实战》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:(以)塔勒·爱特尔著;张俊达译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2019
  • ISBN:9787115502001
  • 页数:205 页
图书介绍:本书将通过实际操作帮助读者透彻地理解现代渐进式Web应用开发,指导读者学会利用原生应用的特性构建Web应用。主要内容包括:某酒店网站构建全流程,开发渐进式Web应用时的一些需要重点考虑的因素,离线优先的Web应用的哲学,渐进式Web应用为用户界面带来的一些新挑战和新机会,等等。

第1章 渐进式Web应用介绍 1

1.1 Web反击战 2

1.2当前的移动领域 2

1.3渐进式Web应用的优势 4

1.4浏览器标签页、Web和service worker 6

第2章 你的第一个service worker 8

2.1设置示例项目 8

2.2欢迎来到哥谭帝国酒店 9

2.3熟悉代码 10

2.4当前的离线体验 11

2.5创建你的第一个service worker 13

2.6什么是渐进增强 16

2.7 HTTPS和service worker 16

2.8从Web获取内容 17

2.9捕获离线请求 18

2.10创建HTML响应 19

2.11理解service worker作用域 21

2.12小结 22

第3章 CacheStorage API 23

3.1 CacheStorage是什么,不是什么 24

3.2决定何时进行缓存 24

3.3在CacheStorage中存储请求 25

3.4从CacheStorage中取回请求 26

3.5在示例应用缓存 27

3.6匹配每个请求的正确响应 29

3.7 HTTP缓存和HTTP头 31

3.8小结 31

第4章service worker生命周期和缓存管理 33

4.1 service worker生命周期 36

4.2 service worker的生命周期与waitUntil的重要性 38

4.3更新service worker 39

4.4为什么需要管理缓存 40

4.5缓存管理与清除旧缓存 42

4.6重用已缓存的响应 46

4.7配置服务器以提供正确的响应头部 47

4.8开发者工具 48

4.8.1控制台 48

4.8.2清除缓存并刷新 48

4.8.3检查CacheStorage和IndexedDB 49

4.8.4网络节流与模拟离线情况 49

4.8.5 Lighthouse 50

4.9小结 50

第5章 拥抱离线优先 51

5.1什么是离线优先 52

5.2常用缓存模式 53

5.3混合与匹配:创造新模式 55

5.4规划缓存策略 57

5.5实现缓存策略 59

5.6 App shell架构 68

5.7实现App shell 70

5.8解锁成就 72

5.9小结 73

第6章 使用IndexedDB在本地存储数据 74

6.1什么是IndexedDB 75

6.2使用IndexedDB 77

6.2.1打开数据库连接 77

6.2.2数据库版本/修改对象存储 78

6.2.3添加数据到对象存储 79

6.2.4从对象存储中读取数据 80

6.2.5 IndexedDB版本管理 81

6.2.6使用游标读取对象 82

6.2.7创建索引 84

6.2.8使用索引读取数据 85

6.2.9限制游标的范围 86

6.2.10设置游标方向 87

6.2.11更新对象存储中的对象 87

6.2.12从对象存储删除对象 88

6.2.13从对象存储中删除所有对象 89

6.2.14处理冒泡IndexedDB错误 89

6.3 SQL忍者的IndexedDB 90

6.4 IndexedDB实践 91

6.5 promise式的数据库 98

6.6 IndexedDB管理 103

6.7在service worker中使用IndexedDB 104

6.8 IndexedDB生态系统 105

6.8.1 PouchDB 105

6.8.2 localForage 106

6.8.3 Dexie.js 106

6.8.4 IndexedDB Promised 107

6.9小结 107

第7章 使用后台同步保证离线功能 108

7.1后台同步是如何工作的 109

7.2 SyncManager 111

7.2.1访问SyncManager 111

7.2.2注册事件 112

7.2.3 sync事件 112

7.2.4事件标签 112

7.2.5获取已注册sync事件列表 113

7.2.6最后的机会 113

7.3传递数据给sync事件 114

7.3.1在IndexedDB中维护操作队列 114

7.3.2在IndexedDB中维护请求队列 116

7.3.3传递数据给sync事件标签 118

7.4给应用添加后台同步 118

7.5小结 125

第8章 使用postMessage()在service worker和页面之间通信 126

8.1窗口向service worker通信 127

8.2 service worker向所有打开的窗口通信 128

8.3 service worker向特定窗口通信 130

8.4使用MessageChannel保持通信渠道打开 131

8.5窗口间的通信 133

8.6从sync事件向页面传递消息 136

8.7小结 137

第9章 可安装的Web应用:占领主屏先机 138

9.1可安装的Web应用 139

9.2浏览器如何决定何时显示应用安装横条 140

9.3剖析Web应用清单 141

9.4各端兼容性 145

9.5小结 146

第10章 推送通知 147

10.1推送通知的生命周期 147

10.1.1 Notification API 147

10.1.2 Push API 148

10.1.3 Push+Notification 150

10.2创建通知 150

10.2.1请求通知权限 150

10.2.2显示通知 153

10.2.3为哥谭帝国酒店添加通知支持 157

10.3为用户订阅推送事件 158

10.3.1生成VAPID公钥和私钥 160

10.3.2生成GCM密钥 161

10.3.3创建新订阅 162

10.3.4为哥谭帝国酒店用户订阅推送消息 164

10.4从服务端发送推送事件 166

10.5监听推送事件并显示通知 168

10.6小结 174

第11章 渐进式Web应用的用户体验 175

11.1优雅与信任 175

11.2从service worker传递状态 176

11.3使用Progressive UI KITT通信 178

11.4渐进式Web应用中的常见消息 180

11.4.1缓存完成 180

11.4.2页面已缓存 180

11.4.3操作失败,但会在用户恢复连接时完成 181

11.4.4启用通知 181

11.5选择正确的用词 181

11.6不要直奔主题 182

11.7渐进式Web应用的设计 184

11.7.1设计应该反映条件的变化 184

11.7.2设计应该适应运行环境 185

11.7.3设计应该适应每种媒介的特殊性 185

11.7.4设计应该向用户注入信心并通知用户 186

11.7.5设计应该帮助用户和企业实现目标 186

11.8负责安装提示 186

11.9使用RAIL测量性能并实现高性能 187

11.10小结 189

第12章 渐进式Web应用的未来 190

12.1使用Payment Request API接受支付请求 190

12.2使用Credential Management API进行用户管理 192

12.3 WebGL实时图像处理 193

12.4未来的语音识别API 194

12.5使用WebVR在浏览器中实现虚拟现实 194

12.6轻松共享应用 195

12.7流畅的媒体播放UI 196

12.8下一个伟大时代 197

附录A service worker:采用ES2015的大好时机 198

附录B 全页间隙式广告 201

附录C COBS与NO-CORS 202

关于作者 204

关于封面 204