大家對(duì)HTML5期望很高,希望它繼承Web應(yīng)用開(kāi)發(fā)簡(jiǎn)單、部署升級(jí)方便、可以跨平臺(tái),又能像本地應(yīng)用那樣功能強(qiáng)大,操作體驗(yàn)簡(jiǎn)便友好。我也在上篇“HTML5為什么這樣紅”中顛來(lái)倒去地講HTML5如何的天生麗質(zhì)、為何傾國(guó)傾城。然而,要達(dá)到大家的期望值,HTML5需要還需要做不少工作。
看來(lái),天將降大任于HTML5也,少不了苦其心志、勞其筋骨、餓其體膚、空乏其身。。。
下面我們就聊聊HTML5技術(shù)相對(duì)于業(yè)務(wù)需求,目前存在的一些不足或者說(shuō)可能制約HTML5業(yè)務(wù)發(fā)展的一些問(wèn)題。當(dāng)然,這些不足或問(wèn)題,并非不可克服,我也會(huì)相應(yīng)談?wù)勏嚓P(guān)的解決對(duì)策,供探討、參考。
1、瀏覽器對(duì)HTML5 的兼容性參差不齊,導(dǎo)致部分HTML5應(yīng)用無(wú)法跨平臺(tái)
HTML5只是一種技術(shù)標(biāo)準(zhǔn)。HTML5應(yīng)用跨平臺(tái)的最大風(fēng)險(xiǎn)在于各種瀏覽器(或類瀏覽器)對(duì)HTML5標(biāo)準(zhǔn)的支持情況,或者稱之HTML5標(biāo)準(zhǔn)兼容性情況。
目前,桌面電腦、平板電腦、手機(jī)、機(jī)頂盒等各類終端上瀏覽器對(duì)HTML5的支持情況參差不齊。
看看以下各種終端平臺(tái)上的瀏覽器對(duì)HTML5的支持情況,會(huì)有直觀體會(huì):
移動(dòng)終端:http://www.html5test.com/results-mobile.html
平板電腦:http://www.html5test.com/results-tablets.html
桌面電腦:http://www.html5test.com/results.html
目前瀏覽器對(duì)HTML5支持情況差異較大的原因主要是因?yàn)镠TML5技術(shù)標(biāo)準(zhǔn)剛出不久,尚未正式發(fā)布。目前業(yè)界各種瀏覽器都非常積極支持HTML5標(biāo)準(zhǔn),從當(dāng)前的趨勢(shì)看,過(guò)個(gè)兩三年,大多瀏覽器對(duì)HTML5的支持都會(huì)不錯(cuò)。
對(duì)策:應(yīng)建立HTML5兼容性測(cè)試體系,并以某種方式強(qiáng)制或有效督促執(zhí)行。
2、HTML5應(yīng)用性能較差,導(dǎo)致應(yīng)用啟動(dòng)慢,操作反應(yīng)慢
與本地應(yīng)用相比,HTML5的應(yīng)用性能一般相對(duì)較差,體現(xiàn)在啟動(dòng)、運(yùn)行、操作等過(guò)程的處理響應(yīng)速度等。主要是因?yàn)镠TML5是解釋性的腳本語(yǔ)言,通過(guò)瀏覽器內(nèi)核來(lái)解析。因此,HTML5應(yīng)用性能較差,主要是瀏覽器引擎的原因。
對(duì)策:1)優(yōu)化應(yīng)用執(zhí)行效率,例如V8 JavaScript引擎比一般JS引擎效率高,因?yàn)樗苯影袹S腳本編譯成本地機(jī)器碼再執(zhí)行,而非傳統(tǒng)的執(zhí)行字節(jié)碼或直接解析。當(dāng)然,優(yōu)化瀏覽器的渲染等引擎、采用一些腳本、對(duì)象緩存技術(shù)等也能一定程度提高執(zhí)行效率。
2)升級(jí)終端配置。用更快的CPU,更大的內(nèi)存。呵呵。
3、源代碼對(duì)用戶可見(jiàn),容易被拷貝
HTML5同傳統(tǒng)的Web網(wǎng)頁(yè)一樣,代碼和圖片等資源都是可見(jiàn)的,因此很容易被拷貝。
對(duì)策:1)對(duì)Javascript進(jìn)行代碼混淆
2)將HTML5應(yīng)用打包成特定格式,以本地應(yīng)用形式安裝,安裝后刪去程序包,安裝在本地的程序文件隱藏存儲(chǔ)。
4、HTML5應(yīng)用的可用性,受制于網(wǎng)絡(luò)狀況的穩(wěn)定性
HTML5的應(yīng)用穩(wěn)定性相對(duì)要較差些,原因很多,其中網(wǎng)絡(luò)狀況影響很大。
目前,大多的HTML5應(yīng)用都部署在服務(wù)器側(cè),通過(guò)瀏覽器訪問(wèn)。對(duì)于手機(jī),經(jīng)常出現(xiàn)網(wǎng)絡(luò)狀況不穩(wěn)定情況,很可能導(dǎo)致程序包下載等情況,非常影響應(yīng)用的完整性、穩(wěn)定性、可用性。
對(duì)策:1)將HTML5應(yīng)用部署在本地
2)應(yīng)用訪問(wèn)一次后,緩存應(yīng)用代碼
5、瀏覽器缺乏對(duì)設(shè)備能力訪問(wèn)的支持,手機(jī)HTML5應(yīng)用的發(fā)展
特別是手機(jī)應(yīng)用,非常需要訪問(wèn)電話、短彩信、電池余量等各種設(shè)備能力。我們很高興看到,W3C成立的DAP(Device APIs and Policy Working Group ),以及WAC( Widget API)都在做相關(guān)工作。
對(duì)策:早晚會(huì)支持的,BAE早就支持了。
6.缺少應(yīng)用安全體系,影響應(yīng)用發(fā)展和生態(tài)環(huán)境建立
傳統(tǒng)的Web網(wǎng)頁(yè),通過(guò)限制對(duì)本地文件訪問(wèn)等方式,來(lái)保證對(duì)終端的安全性。然而,HTML5能力已接近本地應(yīng)用能力,強(qiáng)大的能力是把雙刃劍。HTML5腳本程序是純文本,容易發(fā)生代碼篡改等問(wèn)題,因而,如何防止代碼篡改,防止惡意代碼,限制HTML5應(yīng)用對(duì)一些重要數(shù)據(jù)的訪問(wèn),保證應(yīng)用間的相對(duì)數(shù)據(jù)獨(dú)立性,保證應(yīng)用作者的可追溯性等一系列問(wèn)題,是需要考慮解決的。
對(duì)策:應(yīng)用簽名機(jī)制+能力聲明及分級(jí)控制
7.HTML5應(yīng)用不能以單一文件形式分發(fā),影響缺少優(yōu)秀的HTML5應(yīng)用開(kāi)發(fā)工具,影響應(yīng)用的質(zhì)量和數(shù)量
目前HTML5應(yīng)用大多采用網(wǎng)站或者網(wǎng)頁(yè)形式,部署在服務(wù)器上,并未像本地應(yīng)用一樣打成一個(gè)單一軟件包進(jìn)行分發(fā)。這樣就無(wú)法直接套用目前的移動(dòng)應(yīng)用商店模式,過(guò)度依賴服務(wù)器、網(wǎng)絡(luò)穩(wěn)定性,也影響應(yīng)用分發(fā)的靈活性。W3C Widget或者WAC Widget等把HTML5應(yīng)用打包成單一文件的形式,這樣既方便應(yīng)用分發(fā),也可以為用戶帶來(lái)本地應(yīng)用的使用體驗(yàn)。
對(duì)策:把HTML5應(yīng)用代碼打包成單一文件,當(dāng)然了,需要瀏覽器支持該文件格式。
8.缺少優(yōu)秀的HTML5應(yīng)用開(kāi)發(fā)工具,影響應(yīng)用的質(zhì)量和數(shù)量
目前發(fā)Web網(wǎng)頁(yè)的工具不少,但是專門針對(duì)HTML5應(yīng)用的設(shè)計(jì)開(kāi)發(fā)工具還很少,這將影響應(yīng)用的快速豐富。
對(duì)策:早晚會(huì)有的,不急。
如果解決一些這些問(wèn)題,對(duì)于HTML5無(wú)疑是如虎添翼。[插播廣告]:中國(guó)移動(dòng)的BAE/WAC Widget產(chǎn)品(主頁(yè):http://labs.chinamobile.com/bae) 除了支持和遵循HTML5標(biāo)準(zhǔn),
還支持HTML5應(yīng)用打包,本地安裝使用,移動(dòng)應(yīng)用簽名機(jī)制,對(duì)設(shè)備能力的訪問(wèn)等,解決了以上大多難題問(wèn)題。無(wú)線城市應(yīng)用、移動(dòng)辦公等基于BAE開(kāi)發(fā),取得了很好的效果。 J
最后提一句,HTML5已遠(yuǎn)不是原來(lái)的HTML5,有越來(lái)越多的人在做各種事情,讓HTML5更加強(qiáng)大,更加美好,這里列一些和HTML5相關(guān)的一些新技術(shù)或特性。
• 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)
由上可見(jiàn),大家都對(duì)HTML5的信心和熱情。當(dāng)然,離目的地還有一段路要走,讓我們一起同行吧!