Web App和Native App的比較


一、Web App vs. Native App

比起手機App,網站有一些明顯的優點。

  • 跨平台:所有系統都能運行
  • 免安裝:打開瀏覽器,就能使用
  • 快速部署:升級只需在服務器更新代碼
  • 超鏈接:可以與其他網站互連,可以被搜索引擎檢索

但是,現實是怎樣呢?

(1)體驗差。手機App的操作流暢性,遠超網站。

(2)業界不支持。所有公司的移動端開發重點,幾乎都是原生app。

(3)用戶不在乎。大多數用戶都選擇使用手機app,而不是網站。

如果將來有一天,Web app會成為主流,一定有一個前提,那就是它的性能可以趕上Native app。

二、為什么Web app有性能瓶頸?

Web app輸給Native app的地方,不是界面(UI),而是操作性能。主要是互動(interaction)和動畫(animation)這兩方面,會出現卡頓(jank),用戶會感覺到明顯的時滯,有時簡直慢得難以忍受。

Web app的性能瓶頸,主要有以下原因。

(1)Web基於DOM,而DOM很慢。瀏覽器打開網頁時,需要解析文檔,在內存中生成DOM結構,如果遇到復雜的文檔,這個過程是很慢的。可以想象一下,如果網頁上有上萬個、甚至幾十萬個形狀(不管是圖片或CSS),生成DOM需要多久?更不要提與其中某一個形狀互動了。

(2)DOM拖慢JavaScript。所有的DOM操作都是同步的,會堵塞瀏覽器。JavaScript操作DOM時,必須等前一個操作結束,才能執行后一個操作。只要一個操作有卡頓,整個網頁就會短暫失去響應。瀏覽器重繪網頁的頻率是60FPS(即16毫秒/幀),JavaScript做不到在16毫秒內完成DOM操作,因此產生了跳幀。用戶體驗上的不流暢、不連貫就源於此。

(3)網頁是單線程的。現在的瀏覽器對於每個網頁,只用一個線程處理。所有工作都在這一個線程上完成,包括布局、渲染、JavaScript執行、圖像解碼等等,怎么可能不慢?

(4)網頁沒有硬件加速。網頁都是由CPU處理的,沒用GPU進行圖形加速。

上面這些原因,對於PC還不至於造成嚴重的性能問題,但是手機的硬件資源相對有限,用戶互動又相對頻繁,結果跟Native app一比,就完全落在了下風。

 

轉載地址:http://www.ruanyifeng.com/blog/2015/02/future-of-dom.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM