序 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
· · · · · · (
收起)