大家對HTML5期望很高,希望它繼承Web應用開發簡單、部署升級方便、可以跨平台,又能像本地應用那樣功能強大,操作體驗簡便友好。我也在上篇“HTML5為什麼這樣紅”中顛來倒去地講HTML5如何的天生麗質、為何傾國傾城。然而,要達到大家的期望值,HTML5需要還需要做不少工作。
看來,天將降大任於HTML5也,少不了苦其心志、勞其筋骨、餓其體膚、空乏其身。。。
下面我們就聊聊HTML5技術相對於業務需求,目前存在的一些不足或者說可能制約HTML5業務發展的一些問題。當然,這些不足或問題,並非不可克服,我也會相應談談相關的解決對策,供探討、參考。
1、浏覽器對HTML5 的兼容性參差不齊,導致部分HTML5應用無法跨平台
HTML5只是一種技術標准。HTML5應用跨平台的最大風險在於各種浏覽器(或類浏覽器)對HTML5標准的支持情況,或者稱之HTML5標准兼容性情況。
目前,桌面電腦、平板電腦、手機、機頂盒等各類終端上浏覽器對HTML5的支持情況參差不齊。
看看以下各種終端平台上的浏覽器對HTML5的支持情況,會有直觀體會:
移動終端:http://www.html5test.com/results-mobile.html
平板電腦:http://www.html5test.com/results-tablets.html
桌面電腦:http://www.html5test.com/results.html
目前浏覽器對HTML5支持情況差異較大的原因主要是因為HTML5技術標准剛出不久,尚未正式發布。目前業界各種浏覽器都非常積極支持HTML5標准,從當前的趨勢看,過個兩三年,大多浏覽器對HTML5的支持都會不錯。
對策:應建立HTML5兼容性測試體系,並以某種方式強制或有效督促執行。
2、HTML5應用性能較差,導致應用啟動慢,操作反應慢
與本地應用相比,HTML5的應用性能一般相對較差,體現在啟動、運行、操作等過程的處理響應速度等。主要是因為HTML5是解釋性的腳本語言,通過浏覽器內核來解析。因此,HTML5應用性能較差,主要是浏覽器引擎的原因。
對策:1)優化應用執行效率,例如V8 JavaScript引擎比一般JS引擎效率高,因為它直接把JS腳本編譯成本地機器碼再執行,而非傳統的執行字節碼或直接解析。當然,優化浏覽器的渲染等引擎、采用一些腳本、對象緩存技術等也能一定程度提高執行效率。
2)升級終端配置。用更快的CPU,更大的內存。呵呵。
3、源代碼對用戶可見,容易被拷貝
HTML5同傳統的Web網頁一樣,代碼和圖片等資源都是可見的,因此很容易被拷貝。
對策:1)對Javascript進行代碼混淆
2)將HTML5應用打包成特定格式,以本地應用形式安裝,安裝後刪去程序包,安裝在本地的程序文件隱藏存儲。
4、HTML5應用的可用性,受制於網絡狀況的穩定性
HTML5的應用穩定性相對要較差些,原因很多,其中網絡狀況影響很大。
目前,大多的HTML5應用都部署在服務器側,通過浏覽器訪問。對於手機,經常出現網絡狀況不穩定情況,很可能導致程序包下載等情況,非常影響應用的完整性、穩定性、可用性。
對策:1)將HTML5應用部署在本地
2)應用訪問一次後,緩存應用代碼
5、浏覽器缺乏對設備能力訪問的支持,手機HTML5應用的發展
特別是手機應用,非常需要訪問電話、短彩信、電池余量等各種設備能力。我們很高興看到,W3C成立的DAP(Device APIs and Policy Working Group ),以及WAC( Widget API)都在做相關工作。
對策:早晚會支持的,BAE早就支持了。
6.缺少應用安全體系,影響應用發展和生態環境建立
傳統的Web網頁,通過限制對本地文件訪問等方式,來保證對終端的安全性。然而,HTML5能力已接近本地應用能力,強大的能力是把雙刃劍。HTML5腳本程序是純文本,容易發生代碼篡改等問題,因而,如何防止代碼篡改,防止惡意代碼,限制HTML5應用對一些重要數據的訪問,保證應用間的相對數據獨立性,保證應用作者的可追溯性等一系列問題,是需要考慮解決的。
對策:應用簽名機制+能力聲明及分級控制
7.HTML5應用不能以單一文件形式分發,影響缺少優秀的HTML5應用開發工具,影響應用的質量和數量
目前HTML5應用大多采用網站或者網頁形式,部署在服務器上,並未像本地應用一樣打成一個單一軟件包進行分發。這樣就無法直接套用目前的移動應用商店模式,過度依賴服務器、網絡穩定性,也影響應用分發的靈活性。W3C Widget或者WAC Widget等把HTML5應用打包成單一文件的形式,這樣既方便應用分發,也可以為用戶帶來本地應用的使用體驗。
對策:把HTML5應用代碼打包成單一文件,當然了,需要浏覽器支持該文件格式。
8.缺少優秀的HTML5應用開發工具,影響應用的質量和數量
目前發Web網頁的工具不少,但是專門針對HTML5應用的設計開發工具還很少,這將影響應用的快速豐富。
對策:早晚會有的,不急。
如果解決一些這些問題,對於HTML5無疑是如虎添翼。[插播廣告]:中國移動的BAE/WAC Widget產品(主頁:http://labs.chinamobile.com/bae) 除了支持和遵循HTML5標准,
還支持HTML5應用打包,本地安裝使用,移動應用簽名機制,對設備能力的訪問等,解決了以上大多難題問題。無線城市應用、移動辦公等基於BAE開發,取得了很好的效果。 J
最後提一句,HTML5已遠不是原來的HTML5,有越來越多的人在做各種事情,讓HTML5更加強大,更加美好,這裡列一些和HTML5相關的一些新技術或特性。
• HTML5
• CSS 3
• DOM Level 3 Events
• SVG 1.1
• WAI-ARIA 1.0
• MathML 2.0
• ECMAScript 5
• 2D Context
• WebGL (3D)
• Web Storage
• Web Workers
• Web Sockets Protocol/API
• Indexed Database
• File API
• Geolocation
• Device API
• Server-Sent Events
• Element Traversal
• Media Fragments
• XMLHttpRequest
• Selectors API
• CSSOM View Module
• Cross-Origin Resource Sharing
• RDFa
• Microdata
• WOFF
• HTTP 1.1 part 1 to part 7
• TLS 1.2 (updated)
• IRI (updated)
由上可見,大家都對HTML5的信心和熱情。當然,離目的地還有一段路要走,讓我們一起同行吧!