Google 早已推出比微信小程序更強大的東西了?

微信小程序 Progressive Web App


這次我也做一回標題黨贤壁,蹭一次熱點話題班挖。
近期,微信扔出一個還在內(nèi)測階段的技術(shù)芯砸,就炸翻了這個小圈子。吃瓜群眾紛紛表示驚嘆给梅,甚是擔心這個 “小程序” 會不會革了自己的命假丧。個人認為,革命倒是不會动羽,小程序本質(zhì)上還是類似 H5包帚,屬于輕量級應用,大型復雜業(yè)務還是更適合使用原生應用來處理运吓。不過渴邦,在處理小規(guī)模任務上,我們又多了一種不錯的選擇拘哨。

我們暫時不關(guān)心革命不革命的問題谋梭,轉(zhuǎn)而思考更本質(zhì)的東西 --- 我們需要一個什么樣的小型應用
我覺得應該是:

  1. 快速獲取
  2. 快速加載
  3. 快速響應
  4. 跨平臺的一致性體驗

前三點可以總結(jié)為一個字倦青,快瓮床。第四點則是因為客觀上存在著種類繁多的設備類型,我們希望應用在大多數(shù)環(huán)境下都能保持一致的水準。
傳統(tǒng)的 H5 應用可以做到快速獲取 --- 你只需要一個網(wǎng)址隘庄,無需安裝即可使用踢步,也可以做到跨平臺 --- 任何支持 H5 的瀏覽器均可得到一致的體驗。但和原生應用相比丑掺,H5 應用的加載和響應速度(尤其是在網(wǎng)絡不穩(wěn)定的情況下)實在是令人難以接受获印,更不用提離線運行了。
假如網(wǎng)絡存在波動街州,斷開連接數(shù)秒鐘兼丰,普通 H5 應用很可能就罷工顯示 “未連接到互聯(lián)網(wǎng)”。也許我們只是想發(fā)送一條消息菇肃,或者瀏覽已經(jīng)加載完畢的內(nèi)容地粪,卻引起了整個應用界面的崩潰。
不過我們可以很自然的想到解決思路 --- 能不能讓 H5 應用擁有可控制的緩存機制琐谤?這樣就無須從頭加載蟆技,減少流量,提升相應效率斗忌,甚至實現(xiàn)完全離線的能力质礼。

因此,很多組織和公司都推出了相應的解決方案织阳。其中就包括本次介紹的兩位主角:微信小程序 和 Progressive Web App [1]眶蕉。


技術(shù)上

經(jīng)過簡單的了解,我發(fā)現(xiàn)兩者其實使用了相似的技術(shù):

首先要把界面部分緩存在本地唧躲,因為界面多是靜態(tài)的造挽,更新頻率不高,把它緩存起來是靠譜的選擇弄痹。這部分比較容易理解饭入,關(guān)鍵在于如何處理動態(tài)數(shù)據(jù)或者界面更新呢?

為了解決這個問題肛真,Progressive Web App 使用了稱為 Service Worker 的技術(shù)谐丢,而微信小程序的官方說明中也指出 “邏輯層(App Service) ... 類似ServiceWorker,所以邏輯層也稱之為App Service蚓让∏溃”依此看,這兩家應該是差不多历极。

那這個 Service Worker 或者 App Service 到底是個什么呢窄瘟?
簡單來說這個東西就是一個在網(wǎng)絡和瀏覽器之間的 “中間層”。應用不直接向網(wǎng)絡發(fā)起請求趟卸,而是通過一系列事件寞肖,與這個中間層進行交互纲酗,然后再由這個中間層去訪問網(wǎng)絡,獲取數(shù)據(jù)新蟆。以前的網(wǎng)頁緩存是不可控制的觅赊,而使用了上述技術(shù),可實現(xiàn)可編程的離線能力琼稻。我們可以指定哪些內(nèi)容需要被離線保存吮螺,當下次訪問這些內(nèi)容時,如果緩存可用帕翻,就可以讀取緩存從而提升效率鸠补。而離線時,可直接從緩存中拿取緩存數(shù)據(jù)進行加載嘀掸。甚至還可以在網(wǎng)絡恢復時紫岩,自動重新連接服務器獲取更新內(nèi)容。

Service Worker

(圖片來自 認識Progressive Web App 睬塌,文字作者: 外籍杰克 泉蝌,圖片作者:未知)

依托這種技術(shù),可以得到貼近原生應用的體驗揩晴。比如勋陪,PWA/微信小程序 可以在離線狀態(tài)下發(fā)送聊天消息。因為 Service Worker 或者 App Service 會在后臺等待著網(wǎng)絡重連硫兰,一旦網(wǎng)絡重新接入诅愚,消息便會自動發(fā)送出去。

比較

接下來我們不過多在技術(shù)細節(jié)上討論兩者(絕對不會告訴你其實是我根本不懂技術(shù)細節(jié) 233333)劫映,從用戶的眼光去審視這兩者的異同违孝。

提供的功能

Progressive Web App:除了傳統(tǒng) H5 已經(jīng)提供的功能,還提供了后臺同步泳赋、后臺推送消息通知等功能雌桑。
微信小程序:提供豐富的微信原生API,可以方便的調(diào)起微信提供的能力摹蘑,如獲取用戶信息,本地存儲轧飞,支付功能等衅鹿。

兼容性

Progressive Web App:由瀏覽器提供支持,Chrome过咬、Opera大渤、Firefox 均已支持 PWA。
微信小程序:由微信提供支持掸绞,只能在微信中使用泵三。

自由度

Progressive Web App:PWA 可以生成一個圖標耕捞,并被添加到桌面上。而且不僅可以在手機端使用烫幕,在任何支持 PWA 的瀏覽器環(huán)境下均可正常使用俺抽。
微信小程序:只有在微信中使用。


總結(jié)

看來较曼,微信小程序是微信生態(tài)布局之一磷斧,而 Progressive Web App 則把眼光放在了全體 Web App 上,畢竟后面站著的是 Google捷犹,而 Google 手里握著 Chrome 這個東西弛饭。
微信小程序的殺手锏是它能與微信這個龐大的體系進行交互,比如獲取用戶信息萍歉,進行微信支付侣颂,但最終的控制權(quán)在微信手上,過不了審核枪孩,說不讓你發(fā)布你就不讓你發(fā)布憔晒。而 Progressive Web App 則更為自由,你可以部署項目到任何支持 HTTPS 的服務器上(而且必須支持 HTTPS 才能工作)销凑,支持的范圍也不受某個應用的限制丛晌,有瀏覽器即可。

不管是哪一種新技術(shù)斗幼,都是希望帶給用戶更爽快的使用體驗澎蛛,給開發(fā)者更便捷的開發(fā)體驗,最好再帶來點利益蜕窿。而對于開發(fā)人員谋逻,積極擁抱變化,找尋變化中的不變量桐经,才能任其千變?nèi)f化而應對自如毁兆。

最后,已經(jīng)有一定數(shù)量的知名應用使用了 PWA 技術(shù)阴挣,Flipboard 就是其中之一气堕。快使用支持 PWA 技術(shù)的瀏覽器體驗一下吧畔咧。(試試看在第一次加載完畢后斷開所有網(wǎng)絡再刷新)


本文采用 知識共享署名-相同方式共享 3.0 中國大陸許可協(xié)議 進行許可茎芭。
限于作者水平,錯誤疏漏在所難免誓沸,如有文中有任何錯誤請直接在此回復聯(lián)系作者梅桩。收到之后會及時更正并表示感謝。


  1. Progressive Web App 是 Google 在 2015 年中旬推出的技術(shù)拜隧。 ?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末宿百,一起剝皮案震驚了整個濱河市趁仙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌垦页,老刑警劉巖雀费,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異外臂,居然都是意外死亡坐儿,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門宋光,熙熙樓的掌柜王于貴愁眉苦臉地迎上來貌矿,“玉大人,你說我怎么就攤上這事罪佳」渎” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵赘艳,是天一觀的道長酌毡。 經(jīng)常有香客問我,道長蕾管,這世上最難降的妖魔是什么枷踏? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮掰曾,結(jié)果婚禮上旭蠕,老公的妹妹穿的比我還像新娘。我一直安慰自己旷坦,他們只是感情好掏熬,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著秒梅,像睡著了一般旗芬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上捆蜀,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天疮丛,我揣著相機與錄音,去河邊找鬼辆它。 笑死誊薄,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的娩井。 我是一名探鬼主播暇屋,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼似袁,長吁一口氣:“原來是場噩夢啊……” “哼洞辣!你這毒婦竟也來了咐刨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤扬霜,失蹤者是張志新(化名)和其女友劉穎定鸟,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體著瓶,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡联予,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了材原。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沸久。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖余蟹,靈堂內(nèi)的尸體忽然破棺而出卷胯,到底是詐尸還是另有隱情,我是刑警寧澤威酒,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布窑睁,位于F島的核電站,受9級特大地震影響葵孤,放射性物質(zhì)發(fā)生泄漏担钮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一尤仍、第九天 我趴在偏房一處隱蔽的房頂上張望箫津。 院中可真熱鬧,春花似錦吓著、人聲如沸鲤嫡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽暖眼。三九已至,卻和暖如春纺裁,著一層夾襖步出監(jiān)牢的瞬間诫肠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工欺缘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留栋豫,地道東北人。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓谚殊,卻偏偏與公主長得像丧鸯,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子嫩絮,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

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