《PWA实战》简介:

Progressive Web App(PWA)是由谷歌提出的一整套技术解决方案,它致力于为 Web 提供出色的用户体验,并完美体现了渐进增强原则。作为为数不多的实战入门用书,《PWA 实战:面向下一代的Progressive Web App》旨在通过大量清晰示例来介绍 PWA 的主要特性。全书一共由五个部分组成:第一部分介绍 PWA 的概念及解锁 PWA 应用的关键—Service Worker,第二部分介绍如何构建响应速度更快的 Web 应用,第三部分介绍如何构建更吸引人的 Web 应用,第四部分介绍如何构建应对各种复杂网络的 Web 应用,第五部分介绍 PWA 的发展前景。

《PWA实战:面向下一代的Progressive Web APP》适合Web 开发人员及前端技术爱好者阅读,稍有 HTML、CSS 和JavaScript 基础学习效果更佳。

《PWA实战》目录:

序 XIV
前言 XV
致谢 XVI
关于本书 XVII
第1部分 定义PWA
第1章 理解PWA 3
1.1 PWA有什么优势 3
1.2 PWA 基础 5
构建 PWA 的业务场景 6
1.3 Service Worker:PWA的关键 8
1.3.1 理解 Service Worker 9
1.3.2 Service Worker 生命周期 10
1.3.3 Service Worker 基础示例 11
1.3.4 安全考虑 13
1.4 性能洞察: Flipkart 14
1.5 总结 15
第2章 构建PWA的第一步 16
2.1 建立在现有基础之上 16
2.2 构建 PWA 的前端架构方式 18
2.2.1 应用外壳架构 18
2.2.2 性能优势 21
2.2.3 应用外壳架构实战 22
2.3 逐步剖析现有的 PWA 23
2.3.1 前端架构 24
2.3.2 缓存 25
2.3.3 离线浏览 26
2.3.4 观感 27
2.3.5 最终产品 27
2.4 总结 28
第2部分 更快的Web应用
第3章 缓存 31
3.1 HTTP 缓存基础 31
3.2 Service Worker 缓存基础 34
3.2.1 在 Service Worker 安装过程中预缓存 34
3.2.2 拦截并缓存 38
3.2.3 整合所有代码 42
3.3 缓存前后的性能比对 45
3.4 深入 Service Worker缓存 46
3.4.1 对文件进行版本控制 46
3.4.2 处理额外的查询参数 48
3.4.3 需要多少内存 48
3.4.4 将缓存提升到一个新的高度:Workbox 49
3.5 总结 51
第4章 拦截网络请求 52
4.1 Fetch API 52
4.2 fetch 事件 55
Service Worker 生命周期 56
4.3 fetch实战 58
4.3.1 使用WebP 图片的示例 58
4.3.2 使用 Save-Data 请求头的示例 61
4.4 总结 65
第3部分 吸引人的Web应用
第5章 观感 69
5.1 Web 应用清单 69
5.2 添加到主屏幕 71
5.2.1 定制图标 74
5.2.2 添加启动页面 75
5.2.3 设置启动样式和 URL 76
5.3 添加到主屏幕的高级用法 77
5.3.1 取消提示 78
5.3.2 判断使用情况 78
5.3.3 推迟提示 79
5.4 调试清单文件 81
5.5 总结 82
第6章 推送通知 84
6.1 与用户互动 84
6.2 参与度洞见:Weather Channel 86
6.3 浏览器支持 87
6.4 第一个推送通知 88
6.4.1 订阅通知 89
6.4.2 发送通知 92
6.4.3 接收通知并与之互动 93
6.4.4 取消订阅 97
6.5 第三方推送通知 98
6.6 总结 99
第4部分 有弹性的Web应用
第7章 离线浏览 103
7.1 解锁缓存 103
7.2 提供离线文件 104
7.3 几个需要注意的问题 109
7.4 缓存是非永久性的 110
7.5 离线用户体验 110
7.6 跟踪离线使用情况 113
7.7 总结 114
第8章 构建更富弹性的应用 116
8.1 现代网站所面临的网络问题 116
理解 lie-fi 和单点故障 117
8.2 Service Worker的营救 119
8.3 使用 Workbox 123
8.4 总结 125
第9章 保持数据同步 126
9.1 理解后台同步 126
9.1.1 准备开始 127
9.1.2 Service Worker 130
9.1.3 提供备用方案 132
9.1.4 测试 134
9.2 通知用户 134
9.3 定期同步 137
9.4 总结 138
第5部分 PWA的未来
第10章 流式数据 141
10.1 理解 Web Stream 141
10.1.1 Web Stream 有什么优势 142
10.1.2 可读流 143
10.2 基础示例 144
10.3 页面渲染加速 146
10.4 Web Stream API的未来 151
10.5 总结 152
第11章 PWA故障排除 153
11.1 添加到主屏幕 153
11.1.1 如何得知网站上有多少用户使用了添加到主屏幕功能 .153
11.1.2 添加到主屏幕操作栏对我来说没有任何意义,如何禁用或隐藏 154
11.1.3 求助,我的添加到主屏幕(A2HS)功能没效果 155
11.1.4 如果用户安装了我的Web 应用到他们的主屏幕上,但他们又清除了Chrome 的缓存,那么我的网站缓存的资源也会被清除吗 155
11.1.5 我不确定manifest.json 文件是否正常工作,那么该如何进行测试 155
11.2 缓存 156
11.2.1 我在Service Worker 文件中使用代码将资源添加到缓存中,但是当我更改文件时,缓存并没有更新,而且即使刷新了
页面,看到的仍是旧版本的文件,这是为什么 157
11.2.2 如何对 Service Worker 代码进行单元测试 158
11.2.3 PWA 可以使用用户设备上的多少内存 158
11.2.4 缓存的资源似乎每隔一段时间就会过期,如何确保它们永久性地缓存呢 158
11.2.5 如何处理查询字符串和缓存 159
11.3 调试 Service Worker 的具体问题 159
11.3.1 Service Worker 文件多久更新一次 160
11.3.2 Service Worker 文件出错,但我不知道出错的原因,那么如何调试它 160
11.3.3 求助,我做了各种尝试,但由于一些令人抓狂的原因,我的Service Worker 逻辑似乎从未执行 161
11.3.4 我已经在Service Worker 文件中添加代码来处理推送通知,但是如何在不写服务端代码的情况下进行快速测试呢 .162
11.3.5 我已经构建了离线 Web 应用,但是现在无法得知用户是如何使用的,那么如何追踪用户的使用情况呢 162
11.4 总结 163
第12章 前程似锦 164
12.1 引言 164
12.2 Web蓝牙 165
12.3 Web分享API 166
12.4 支付请求API 169
12.5 硬件访问 172
12.6 硬件:形状检测API 172
12.7 接下来呢 173
12.8 总结 174
· · · · · ·