認(rèn)識PWA

大綱

前言
1庵楷、什么是PWA
2踪央、PWA 應(yīng)該具備的特點
3百姓、PWA基礎(chǔ)
4渊额、構(gòu)建 PWA 的業(yè)務(wù)場景
5、PWA的核心技術(shù)
6垒拢、應(yīng)用外殼架構(gòu)

前言

接下去幾篇博客是我對PWA的的認(rèn)識和理解旬迹,目前PWA的流行程度還不是很高,所以能找到的資源也是有限子库,我對PWA的了解主要是通過這本書《PWA-Book-CN》以及一些大牛的博客舱权。我的文章比較適合一些對這些還不是很清楚的讀者做個初步介紹用的,如果要精深還是需要去自己研讀這本書并且自身投入實踐當(dāng)中才是仑嗅。

1、什么是PWA

PWA全稱漸進式網(wǎng)絡(luò)應(yīng)用 ( Progressive Web Apps )
漸進式網(wǎng)絡(luò)應(yīng)用程序(Progressive Web Application - PWA)张症,是一種可以提供類似于原生應(yīng)用程序(native app)體驗的網(wǎng)絡(luò)應(yīng)用程序(web app)仓技。PWA 可以用來做很多事。其中最重要的是俗他,在離線(offline)時應(yīng)用程序能夠繼續(xù)運行功能脖捻。這是通過使用名為 Service Workers 的網(wǎng)絡(luò)技術(shù)來實現(xiàn)的。
作為Web開發(fā)者兆衅,這是我們傳統(tǒng)構(gòu)建網(wǎng)站方式的一種轉(zhuǎn)變地沮。這意味著我們可以開始構(gòu)建可以應(yīng)對不斷變化的網(wǎng)絡(luò)條件或無網(wǎng)絡(luò)連接的網(wǎng)站嗜浮。這還意味著我們可以建立更吸引人的網(wǎng)站來為我們的用戶提供一流的瀏覽體驗。

2摩疑、PWA 應(yīng)該具備的特點

響應(yīng)式
獨立于網(wǎng)絡(luò)連接
類似原生應(yīng)用的交互體驗
始終保持更新
安全
可發(fā)現(xiàn)
可重連
可安裝
可鏈接

3危融、PWA基礎(chǔ)

那么 PWA 到底是由什么組成的呢?我們一直將它們作為一組功能和原理來討論雷袋,但真正使某個網(wǎng)站成為 “PWA” 的到底是什么呢吉殃?最最簡單的 PWA 其實只是普通的網(wǎng)站。它們是由我們這些 Web 開發(fā)者所熟悉和喜歡的技術(shù)所創(chuàng)建的楷怒,即 HTML蛋勺、CSS 和 JavaScript 。然而鸠删, PWA 卻更進一步抱完,它為用戶提供了增強的體驗。我非常喜歡 Google Chrome 團隊的開發(fā)人員 Alex Russell 的描述方式:“這些應(yīng)用沒有通過應(yīng)用商店進行打包和部署刃泡,它們只是汲取了所需要的原生功能的網(wǎng)站而已巧娱。”
PWA 會指向一個清單 (manifest) 文件捅僵,其中包含網(wǎng)站相關(guān)的信息家卖,包括圖標(biāo),背景屏幕庙楚,顏色和默認(rèn)方向上荡。
PWA 使用了叫做 Service Workers 的重要新功能,它可以令你深入網(wǎng)絡(luò)請求并構(gòu)建更好的 Web 體驗馒闷。
PWA 還允許你將其“添加”到設(shè)備的主屏幕上酪捡。它會像原生應(yīng)用那樣,通過點擊圖標(biāo)便可讓你輕松訪問一個 Web 應(yīng)用纳账。
PWA 還可以離線工作逛薇。使用 Service Workers,你可以選擇性地緩存部分網(wǎng)站以提供離線體驗疏虫。
有了 Service Workers永罚,我們的用戶無需再面對恐怖的“無網(wǎng)絡(luò)連接”屏幕了。使用 Service Workers卧秘,你可以攔截并緩存任何來自你網(wǎng)站的網(wǎng)絡(luò)請求呢袱。無論你是為移動設(shè)備,桌面設(shè)備還是平板設(shè)備構(gòu)建網(wǎng)站翅敌, 都可以在有網(wǎng)絡(luò)連接或沒有網(wǎng)絡(luò)連接的情況下控制如何響應(yīng)請求羞福。
簡而言之,PWA 不僅僅是一組非常棒的新功能蚯涮,它們實際上是我們構(gòu)建更好的網(wǎng)站的一種方式治专。PWA 正在迅速成為一套最佳實踐卖陵。構(gòu)建 PWA 所采取的步驟將有利于訪問你網(wǎng)站的任何人,無論他們選擇使用何種設(shè)備张峰。

4泪蔫、構(gòu)建 PWA 的業(yè)務(wù)場景

現(xiàn)在你對 PWA 已經(jīng)有了基本的了解,讓我們先暫時停下腳步挟炬,想象一下用 PWA 來構(gòu)建的各種可能性鸥滨。假設(shè)你的在線業(yè)務(wù)是報紙,人們通過它來了解更多關(guān)于當(dāng)?shù)氐男侣劙妗H绻阒烙腥私?jīng)常訪問你的網(wǎng)站并瀏覽多個頁面婿滓,為什么不提前緩存這些頁面,這樣他們就可以完全離線地瀏覽新聞粥喜?或者想象下凸主,你的 Web 應(yīng)用服務(wù)于一個慈善機構(gòu),志愿者們在這個網(wǎng)絡(luò)連接不穩(wěn)定或壓根無網(wǎng)絡(luò)連接的區(qū)域進行工作额湘。PWA 的功能將允許你構(gòu)建一個離線應(yīng)用卿吐,使他們在沒有網(wǎng)絡(luò)連接的現(xiàn)場也能收集信息。一旦他們回到辦公室或有網(wǎng)絡(luò)連接的區(qū)域锋华,數(shù)據(jù)就可以同步到服務(wù)器嗡官。對于 Web 開發(fā)者來說,PWA 是個徹底的顛覆者毯焕,并且我個人對它們將帶給 Web 的功能感到興奮不已衍腥。

5、PWA的核心技術(shù)

Web App Manifest – 在主屏幕添加app圖標(biāo)纳猫,定義手機標(biāo)題欄顏色之類
Service Worker – 緩存婆咸,離線開發(fā),以及地理位置信息處理等
App Shell – 先顯示APP的主結(jié)構(gòu)芜辕,再填充主數(shù)據(jù)尚骄,更快顯示更好體驗
Push Notification – 消息推送

6、應(yīng)用外殼架構(gòu)

當(dāng)今有很多非常棒的原生應(yīng)用侵续。就個人而言倔丈,我覺得 Facebook 的原生應(yīng)用為用戶提供了非常棒的體驗。當(dāng)你離線時它會給你提示状蜗,它會緩存你的時間軸乃沙,以便你能更快地訪問,它還能做到瞬間加載诗舰。如果你有一段時間沒有訪問 Facebook 的原生應(yīng)用,你仍會在任何動態(tài)內(nèi)容加載之前训裆,立即看到一個空的“UI 外殼”眶根,包括頭部和導(dǎo)航條蜀铲。
借助 Service Workers 的力量,我們沒有任何理由不為 Web 上的用戶提供同樣的體驗属百。使用智能的 Service Worker 緩存记劝,你實際上可以緩存你網(wǎng)站的 UI 外殼,以便用戶重復(fù)訪問族扰。這些新功能使我們能夠以不同的方式來思考和構(gòu)建網(wǎng)站厌丑。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市渔呵,隨后出現(xiàn)的幾起案子怒竿,更是在濱河造成了極大的恐慌,老刑警劉巖扩氢,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件耕驰,死亡現(xiàn)場離奇詭異,居然都是意外死亡录豺,警方通過查閱死者的電腦和手機朦肘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來双饥,“玉大人媒抠,你說我怎么就攤上這事∮交ǎ” “怎么了趴生?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長迟螺。 經(jīng)常有香客問我冲秽,道長,這世上最難降的妖魔是什么矩父? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任锉桑,我火速辦了婚禮,結(jié)果婚禮上窍株,老公的妹妹穿的比我還像新娘民轴。我一直安慰自己,他們只是感情好球订,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布后裸。 她就那樣靜靜地躺著,像睡著了一般冒滩。 火紅的嫁衣襯著肌膚如雪微驶。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天,我揣著相機與錄音因苹,去河邊找鬼苟耻。 笑死,一個胖子當(dāng)著我的面吹牛扶檐,可吹牛的內(nèi)容都是我干的凶杖。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼款筑,長吁一口氣:“原來是場噩夢啊……” “哼智蝠!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起奈梳,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤杈湾,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后颈嚼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體毛秘,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年阻课,在試婚紗的時候發(fā)現(xiàn)自己被綠了叫挟。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡限煞,死狀恐怖抹恳,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情署驻,我是刑警寧澤奋献,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站旺上,受9級特大地震影響瓶蚂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜宣吱,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一窃这、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧征候,春花似錦杭攻、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至跑揉,卻和暖如春锅睛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工衣撬, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留乖订,地道東北人。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓具练,卻偏偏與公主長得像,于是被迫代替她去往敵國和親甜无。 傳聞我的和親對象是個殘疾皇子扛点,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容