PWA 實戰 : 面向下一代的 Progressive Web APP

PWA 實戰 : 面向下一代的 Progressive Web APP

作者: 迪恩·艾倫·休姆 (Dean Alan Hume)
出版社: 電子工業
出版在: 2018-06-01
ISBN-13: 9787121341946
ISBN-10: 7121341948
裝訂格式: 平裝
總頁數: 196 頁





內容描述


《PWA實戰:面向下一代的Progressive Web APP》內容提要
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 使用 Workbox123
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


作者介紹


Dean Alan Hume 是一名作者、博主、軟件開發者,同時也是谷歌開發專家。
他寫過很多文章,並發表過幾十篇演講,同時還是Fast ASP.NET Websites(Manning, 2013)和Building Great Startup Teams(Blurb, 2017) 的作者。
他還為A Career On The Web: On the Road to Success(Smashing Magazine, 2015)一書做出了貢獻。
作為一名軟件開發人員,他對Web 性能調優充滿熱情,並且經常在他的博客deanhume.com 上撰寫軟件開發相關的文章。




相關書籍

用戶畫像:大數據時代的買家思維營銷

作者 阿黛爾·里弗拉 (Adele Revella)

2018-06-01

看透 JavaScript : 原理、方法與實踐

作者 韓路彪

2018-06-01

SOA and Web Services Interface Design: Principles, Techniques, and Standards (Paperback)

作者 James Bean

2018-06-01