产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

Fastbook:Sencha 想要证明 HTML5 现已“就绪”

  • 2013-01-10
  • 本文字数:1550 字

    阅读完需:约 5 分钟

不久前,Sencha 创建了 Fastbook,这是一个模仿 Facebook 原生应用的 HTML5 应用,在 iOS 与 Android 上的性能表现差不多,Sencha 借此想要证明“HTML5 现已就绪”。

Facebook CEO Mark Zuckerberg几个月前曾经说过“公司最大的失误就是在HTML5 上投入太多,因为HTML5 尚未就绪”,公司决定为iOS 与Android 创建原生应用,后者在一周前已经发布。常见的说法是HTML5 尚未“就绪”、速度不够快、由于缺少合适的工具导致开发起来困难重重。

来自 Sencha (创建了 HTML5 及工具的知名公司)的两位开发者决定证明HTML5 已经就绪,并通过几个月的业余时间创建了 Fastbook 。Fastbook 是个 HTML5 应用,模仿了 Facebook 的原生应用,通过 Facebook API 进行真实的 FB 数据访问(你应该在移动设备上使用该应用,在桌面浏览器中似乎不行)。

下面的视频展示了在 iOS/iPhone 4S 与 Android/Galaxy Nexus 上对原生 Facebook 应用与 Fastbook 进行的测试。令人惊讶的是,在加载动态新闻并滚动新闻时,HTML5 应用的性能与 FB 原生应用一样好,在几处甚至还超越了 FB 应用(也许需要翻墙才能观看视频——译者注):

  • 在不同视图间切换时,HTML5 应用会缓存数据。FB 原生应用则会重新加载动态新闻
  • Fastbook 使用了嵌套的无限列表来展示评论,这提供了更棒的用户体验
  • Fastbook 还提供了 landscape 布局
  • 在 Android/Galaxy Nexus 上,HTML5 应用加载数据的速度要快于原生 Facebook 应用

Fastbook 创建者认为如果使用“网站开发方式”并且没有使用“正确的应用开发工具”的话,那么 HTML5 应用的表现就会很差劲。

他们还发现 Facebook 的原生应用至少有两处大的瑕疵:

  • 它依然是个混合应用:“News Feed 已经被移到了本地,并且拥有设定页面,但很多其他应用 UI 只是简单地向 m.facebook.com 发送 HTTP GET 请求而已。现在的原生 Facebook 应用是个混合 Web/ 原生应用:既有在 m.facebook.com 上渲染并在 UIWebView 上显示的内容,也有原生的 Objective-C 组件”。
  • 它所传输的数据超过了自身的需要,每 10 个条目就需要传输 15KB 到 20KB 的 gzip 压缩 JSON 数据,这其中很多数据并不是渲染实际视图所需要的。在代理服务器上清除 FB 数据后,Sencha 团队将数据传输量减少了 90%。

为了让示例能够成功运行起来,Sencha 对其 Touch 框架进行了几处改进:

  • 为拥有未知数量条目的页面添加了一个新的 Infinite List 组件。该列表包含了少量 DOM 结点,可以重用以渲染前一个 / 下一个条目。这有助于减少内存使用量,并且会极大降低大页面的渲染时间。
  • 添加了一个新的 Sandbox Container,“以编程的方式拆分复杂视图并将其渲染到自己的 iframe 中,这会将 DOM 树分割开来”。这么做的好处在于,动态新闻显示会更快,因为 News Feed、Timeline 与 Story 视图现在可以使用不同的容器了。
  • 与现有 Task Queue 更好的集成,这可以“防止对 DOM 读写的交叉,消除了不必要的布局。这与新的沙箱技术的结合能够极大减少复杂视图代价高昂的布局,比如说 Timeline 与 News Feed”。
  • 添加了一个新的 AnimationQueue 类,它会将耗时的任务推迟到 CPU 空闲时执行。这对滚动很有帮助:当用户快速滚动动态新闻时,图像加载与渲染会暂停,直到滚动停下来为止,这是一种推荐做法。
  • Fastbook 使用了 WebWorkers,它可以在单独的线程而不是 UI 线程中获取数据,使得滚动更加平滑。

如果说去年夏天 HTML5 还不行的话,那么 Sencha 的这个示例就表明了现在的 HTML5 可以与原生应用一样快,这证明了 HTML5 现已“就绪”,即便对于 Facebook 这种大型 Web 应用来说亦是如此。

Sencha 还发起了 HTML5 Is Ready ,这是一个应用竞赛,提供了 $20,000 奖金和设备,为的就是证明“优秀的开发者配上优秀的 HTML5 工具是可以开发出惊艳的应用的”。

查看英文原文: Fastbook: Sencha Wants to Prove HTML5 Is “Ready”

2013-01-10 03:372714
用户头像

发布了 88 篇内容, 共 262.4 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

Apache IoTDB 荣获国家网信办 2022 年中国开源创新大赛决赛一等奖,三位核心研发荣获表彰!

Apache IoTDB

开源数据库 IoTDB

构建高可用性的 SQL Server:Docker 容器下的主从同步实现

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

AIGC时代,基于云原生 MLOps 构建属于你的大模型(下)

York

机器学习 云原生 大模型 MLOps AIGC

线上故障的正确打开方式

老张

项目管理 线上故障 复盘归因 故障复盘

突破界限,共创未来!MIAOYUN“一云多芯”全栈信创解决方案获认可!

MIAOYUN

信创 一云多芯解决方案 信创云 信创生态 一云多芯

垂域LLM应用实践

csunny

大模型 GPT LLM

大连正规等保测评机构有3家还是4家?叫什么名字?

行云管家

等保 等级保护 等保测评 大连

清安储能*IoTDB | 多个核心查询场景实现毫秒级结果返回,平均压缩比达到 90+ 倍

Apache IoTDB

物联网 时序数据库 IoTDB

惊叹!如何在魔幻般的VPS上亲手部署Spring Boot Demo

不在线第一只蜗牛

Docker Kubernetes Spring Boot CLI

eosio.system智能合约介绍(二)系统资源

BSN研习社

PCB板表面如何处理提高可靠性设计?

华秋电子

时速云使用 Higress 替换 Ngnix Ingress + Spring Cloud Gateway 的生产实践

阿里巴巴云原生

阿里云 云原生 Higress

提交Flink作业及所见问题总结

程序员半支烟

flink

C4D哪个版本最好用又稳定?

Finovy Cloud

基于k6和python进行自动化性能测试

华为云开发者联盟

前端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

炫酷教程:用全代码编写WPF程序,轻松掌握.NET深呼吸技巧!

EquatorCoco

.net 开源WPF项目

CVPR首个大模型研讨会顺利召开,吸引超1000支队伍参与文心大模型国际比赛

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨

无痛调度!使用Helm在Kubernetes上一键搭建Prometheus Operator监控

不在线第一只蜗牛

教程分享 K8s 多集群管理

一次打通FlinkCDC同步Mysql数据

程序员半支烟

flink 数据同步 flinkcdc

磷酸铁锂电池应用前景广阔,英集芯响应市场推出IP2366电源管理芯片

华秋电子

社区新手小伙伴测评 | 使用 ChatGPT 可以帮助完成 IoTDB 部署吗?

Apache IoTDB

IoTDB ChatGPT

免费体验,有奖评测!低代码开发平台魔笔发布评测令

移动研发平台EMAS

开发者 低代码开发 有奖评测 快速开发全端应用

HDC华为开发者大会-开发者社区活动

华为云PaaS服务小智

云计算 华为 华为云 华为开发者大会2023

中航机载系统共性技术有限公司*IoTDB | 端边云架构预计节省百万存储成本,实现基于工业物联网的复杂机载制造系统协同

Apache IoTDB

物联网 端边云协同架构 IoTDB 中国航天

堡垒机价格都是按年算吗?大概多少钱?

行云管家

网络安全 堡垒机 运维审计 堡垒机价格

月近万次发布,故障率<4‰如何做到?去哪儿测试左移重难点揭秘!

TakinTalks稳定性社区

【领域驱动设计专题】一文带领你透视DDD领域驱动模型的本质和设计原理分析指南(构建领域知识)

洛神灬殇

领域驱动设计 DDD 领域驱动设计DDD 领域驱动模型

pnpm才是前端工程化项目的未来

互联网工科生

前端 npm 工程化

中移链链账户、合约与资源关系介绍

BSN研习社

当 MQTT 遇上 ChatGPT:探索可自然交互的物联网智能应用

EMQ映云科技

物联网 mqtt ChatGPT

Fastbook:Sencha想要证明HTML5现已“就绪”_Meta_Abel Avram_InfoQ精选文章