PWA实战:面向下一代的Progressive Web APP

作者
(美)Dean Alan Hume(迪恩·艾伦·休姆)
丛书名
出版社
电子工业出版社
ISBN
9787121341946
简要
简介
内容简介书籍计算机书籍 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 基础学习效果更佳。
目录
序..........................................................................................................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

推荐

车牌查询
桂ICP备20004708号-3