大家对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的信心和热情。当然,离目的地还有一段路要走,让我们一起同行吧!