您当前的位置: 首页 > > 旅游摄影

到底是Facebook错了还是Html5错了?

还记得FACEBOOK 执行长祖克柏坦承:采用 HTML5 是脸书成立以来最大的错误这个消息吗?Facebook 创办人兼执行长 Mark Zuckerberg 今年 9 月出席《TechCrunch》Disrupt 大会时,曾抱怨用 HTML5 写出的 Facebook App 又慢又不稳定,总是没办法达到他们想要的质量,因而推出原生版的 Facebook App

这席评论,惹火了众家 HTML5 的拥护者。现在 Sencha 的一群工程师,做出和官方 Facebook App 一样的 App,还颇具挑衅意味的取名为”Fastbook”,他们要以此证明:

“HTML5 绝不是 Facebook 移动 App 龟速的原因!”

纯 HTML5 的 Facebook App,到底可以有多优?

Sencha 是一家来自美国加州的移动 App 服务商,旗下许多移动 App 开发工具如 Sencha Touch,在欧美或中国,都有许多开发者社交。 

他们在研究 Facebook App 之后,决定直接挑战最难的部份,也就是动态时报(News Feed)及相关的页面间切换。并在昨晚,公开了他们利用”闲暇之余”做出来的成果:

从短短 4 分钟的影片中,可以发现 Sencha 的纯 HTML5 App(右侧)胜出 Facebook 官方 App(左侧)之处:

* 页面间切换更顺畅,资料不需重载:例如进行新闻信息与个人档案之间的切换时,数据不需重载,使用者经验流畅。

* 藉由”无限列表组件”(Infinite List Component),Sencha 的 HTML5 App 可以一次呈现更多信息留言,不会像官方 App 一样卡卡的。

HTML5,真有这么神?

Sencha 是如何做到的?

他们的作法包括:

* 相对于官方 Facebook App 为混合式 App(hybrid app),Sencha 纯以 HTML5 实作。

* 由于数据全串接 Facebook 的公用 API,因此与服务器间的数据请求时间,将直接反映在 App 执行速度上,故 Sencha 在请求的数据量上,花了相当大功夫来优化。例如透过代理服务器来处理、过滤掉自 Facebook API 取得的数据量 -- 同样的新闻笔数,Sencha 的 HTML5 App 只需要 10% 的数据量。

* 以任务数组(TaskQueue)避免与 DOM 之间的读写间插,减少不必要的排版(layout)。

* 以新增的动画数组(AnimationQueue)此类别,来优化动画或事件的处理优先级。例如当我们在 Facebook 墙上快速卷动时,动画数组就会暂停图片的加载,直到动作停止。

网友抗议:两者比较基础不同!

部分网友认为,iOS 原生 App 使用的是 WebView 的环境,而 Sencha 最初公开的 HTML5 App,是采用纯浏览器的环境,因此在 JavaScript 的处理上有较多优化。

对此 Sencha 说明,这项以 HTML5 优化 Facebook App 实验的瓶颈,并不在于 JavaScript 的执行表现,而是在整体程序架构的优化。Sencha 还将相同的 HTML5 App 以原生 WebView 的环境包装,让网友下载比较:github.com/extjs/fastbook

Sencha:开发者的功力与思维才是重点

Sencha 的核心技术人员 Jacky Nguyen 补充说,”Fastbook” 无意取代官方 Facebook App,但许多团队常以开发”网页”的思维,来开发一个 HTML5 的移动 App,而这是不对的。他认为,这就是 Facebook 当初使用 HTML5 开发 App 时的心态,才造就一个又慢、又不稳的使用者体验,他说:

“这个 Demo 影片,只是用来展现开发者可以如何用正确的方法、架构及工具,好好运用 HTML5。”

如果你现在刚好在用手机看《TO》的话,赶快来试试纯 HTML5 写的 Fastbook 吧:

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

上一篇: 白话区块链入门029 | DApp这么火,是手机App的升级版吗?

下一篇: 湖北一农民56年追寻天文梦 一座山村天文台将建成