Facebook让HTML5遭遇发展危机

近期几个新闻堆叠在一起,颇有韵味。先是WHATWG和W3C在HTM■L5标准上分道扬镳,继而“Facebook移动应用宣布放弃HTML5的┚部分,改为纯Na∶tive方式开发”,接着又传闻苹果AppStore肃杀基于Web技术的App。这几个事件对移动互联网行业来说个个都是重磅炸弹,押注HTML5的受到不小的打击,唱衰HTML5发展的借此幸灾乐祸。HTML5真的只是一场政治斗争吗?到底 Facebook为什么放弃HTML5?现阶段HTML5到底出了什么问题?

Facebook放弃HTML5主因:慢

“对于Facebook的iOS原生应用来说,它在主要在三个方面有很大的速度提升:应用启动、共享μ新闻滚动还有图片点击查看。其总体速度大约提升了一倍。这个版本部分采用了Facebook Camera和Facebook Messenger两款应用的代⿻码库|︴()〔〕:其Ц中图片点击查看功能的代码是从Facebook Camera移植过来,而屏幕消息是从Facebo┐ok Messenger那克隆过来的。这个原生版本是由一个独立的团队开发,产品经理Johnson表示未来会充分利用公司的代码⺌共享,★也会适当向其他团队寻求帮助。”

上述摘自Facebook的官方博客。博客中介绍到FacebooΘk的iOS原生应用放弃HTML5后速度得到大幅度提升。大家不禁好奇℉,为什么HTML5会比原生NativeApp要“慢”很多?

在当前的移动终端设备硬件配置和操作系统优化水平的』前提下,大部分基于HTML5开发的Web页面会出♡现延时加载展示的现象,也就是俗称的卡、慢。特别是在不同的视图界面(view○)切换之间,这种卡和不流畅的现象会尤为严重。而Native应用不会出现这种情况。究其根源,在于浏览器解析的运作机制和原生Native的界面展示机制差异上。如下图所示:

  红色框起来的部分是原生NativeApp的界面展示机制,简单的看起来就是1个步骤——展示,因为所有的绘图和渲染工作都由系统直接完成▂▃▅▆█。而红框以外的部分包括红框内的部分是webkit核心的浏览器解析页面的流程。相比Native的1个步骤,webkit的解析过程可谓漫长而艰〧辛。历经解析、建立Dom树、获取对应资源、布局、建立渲染树、绘╩图到展示。所以不管移动终端设备硬件如何发展,这个差异是始终存在的,最多只是随щ着硬件的提升和软件的优化将这个差异收缩到最小甚至忽略。

更糟糕的是。Facebook之前的iOS混合了HTML5的移动应用,使用HTML5绘图的页面在HTML5开发上也毫无技巧可言,基本沿用了主流前端开发框架jQuery mobile等的单View多div的机制。也就是在一个网页内绘制多个视图,页面之间的切换¤其实只是一个页面内不同区块的切换。这种方式加大了浏览器的渲染和绘制工作强度。并且在数据加载和流量上产生很大的负Υ面影响。如果切换到新页面,之前的页面不进行销毁,则会加大运算量和增加内存占有,而如果销毁又会·。导致已经下载的数据失效,要重新载入,浪费流量。类似情况在中国的网络和设备情况下会尤为突出。所以Facebook不当的在Native App内混搭HTML5也难免引来用户怨言。

还有,一如报道中提到的,Facebook这次的改进提升主要是“新闻滚动和图片点击”。如果了解HTML5的人,就会发现,这两点当然是“不应该在现阶段使用HTML5实现的”。为什么?笔者作为一个基于HTML5技术的Hybrid App系统的设计者,设计秉承的一个原则就是“凡是需要’动’的部分和需要▲大量运算的部分,就最好使用原生】弥补,而不是一定要使∪用◥HTML5来实现”。新闻滚动,↕这种不停通过改变Doↁm树近而改变渲染再绘图展示的使用场景相比原生Nati▀ve弱势是非常明显的。至于图片的部分就@更不用多︼︽︾说了,这并不是HTML5眼下擅长的部分。HTML5现在擅长的≥部分√是数据■量不大的页面、动画少的页面,特别是跨平台的开发。#充分利用好HTML5的⊙优势,尽量降低HTML5的弱势,学会用好HTML5,才是现在这个时期使用HTML5开发的重点。可以说开发技巧很重要。

现阶段HTML5的问题:政治斗争

“原生版本是一♤个独立团队开发的。”Facebook公开的这一点也耐人寻味。原来客户端是Native与HTML5混合的方式,ζ原来¤的团队也肯定有原生的开发能力,为什么非要一个独立团队重↕新耗费6个月进行重新开发?或许这к里不能排除公司内政治因素,而HTML5成为一个牺牲品。HTM⿲L5的政治不仅是一个公司内的,更是整个行业的。7月份,同为HTML5制定者的WHATWG和W3C表示无法继续合作,前者希望制定一个能够跟随市场或技术动态的标准;后者则要确立一个“死”的标准,一旦正式颁布再也无法修改。

WHATWG和W3C的分道扬镳或许会成为HTML5发展的一个分水岭。WHATWG背后有Google、苹果,W3C拉到了特立独行的巨无霸微软。标准是为利益服务的,曾经力推HTML5的苹果,现在也传闻在AppStore内打压基于HTML5开发的App。那苹果到底是喜欢还是不喜欢HTML5?喜欢也是真,讨厌也是真。过去乔布斯为了灭掉Adobe的Flash,将HTML5当成冲锋枪,在移〒动端干掉了Flash之后,面对自己封闭生态系统的巨大利益和HTML5世界大同的愿景做出选择的时候,苹果当然毫无悬念的选择自己的利益。

《web app的挑战(三):入口之争》◎一文中,我有阐述自己的观点:入口之争”在现有移动操作系统设计架构下,浏览器很难和用户桌面争夺核心入口地位。苹果打造的iOS系统就是一个应用优先的系统,无论HTML5怎么发展,Web App如何挣扎,▓浏览器如何砸钱,都抢不过用户桌面的入口地位。基于HTML5的Web App的命运被苹果牢牢把控。Android系统这个跟随iOS桌面入口理念的半山寨货也没有押注Web App而是将这个任务交给了ChromeOS。所以,不用炒概念,也不用谈未来,用HTML5开发原生应用,而不是仅仅套个外壳那么︹︺︻简单才是现阶段HTML5使用的重点和发展的重点。并且苹果封杀的也只是纯∠HTML5套壳的App,对于使用混搭模式(包括Fac∥ebook之前的版本)的移动应用还是保持开放姿态,毕竟这种HTML5还是在苹果的生态系统内可控的运行着∷。

最后

Facebook的iOS放弃HTML5。幸灾乐祸也好,沮丧也罢。变的只是一个应用,HTML5的势头和趋势不是一个企业可以逆转的。现阶段,真正的了解HTML5,掌握HTML5的开发技巧和在恰当的地方用好HTML5,才是把握机遇的重点。

移动信息化交流QQ群:一号群:2110⊿29692 二号群:344692795 CIO交流群:316076815(需认证)

 
®关于本站文章™ | 若非注明原创,默认 均为网友分享文章,如有侵权,请联系我们™
㊣ 本文永久链接: Facebook让HTML5遭遇发展危机