Facebook引发的HTML5危机

网页版 Facebook 第三方登录示例 Facebook网页登录 网页版 Facebook 第三方登录示例 <!DOCTYPE html> <html lang="en"> <head> <title>Facebook Login</title> <meta charset="UTF-8"> <style type="text/css" media="screen"> hr { border: none; } 阅读详情

Facebook引发的HTML5危机

2012-8-31 09:53| 发布者: html5cn |原作者: AppCan刘鑫|来自: 36氪| 评论: 0

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


  Facebook放弃HTML5主因:慢


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


  上述摘自Facebook的官方博客。博客中介绍到Facebook的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来实现”。新闻滚动,这种不停通过改变Dom树近而改变渲染再绘图展示的使用场景相比原生Native弱势是非常明显的。至于图片的部分就更不用多说了,这并不是HTML5眼下擅长的部分。HTML5现在擅长的部分是数据量不大的页面、动画少的页面,特别是跨平台的开发。充分利用好HTML5的优势,尽量降低HTML5的弱势,学会用好HTML5,才是现在这个时期使用HTML5开发的重点。可以说开发技巧很重要。


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


  “原生版本是一个独立团队开发的。”Facebook公开的这一点也耐人寻味。原来客户端是Native与HTML5混合的方式,原来的团队也肯定有原生的开发能力,为什么非要一个独立团队重新耗费6个月进行重新开发?或许这里不能排除公司内政治因素,而HTML5成为一个牺牲品。HTML5的政治不仅是一个公司内的,更是整个行业的。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,对于使用混搭模式(包括Facebook之前的版本)的移动应用还是保持开放姿态,毕竟这种HTML5还是在苹果的生态系统内可控的运行着。


  最后


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


原文链接: http://www.html5cn.org/article-3388-1.html
小语种NLP实战:僧伽罗语仇恨言论识别技术路径 仇恨言论检测是自然语言处理中的基础安全任务,其核心在于理解语义、建模语境并平衡误报与漏报。对于缺乏标准书写规范、方言混杂、高度依赖社会语境的小语种(如僧伽罗语),传统多语言预训练模型常因Unicode编码异常、语境漂移和标注主观性而失效。本文聚焦计算语言学与平台治理交叉场景,揭示字符级噪声处理、分层过滤架构设计、四维细粒度标注体系等关键技术价值,适用于社交媒体内容审核、区域化AI合规系统及低资源语言模型落地等真实工程场景。 阅读详情

相关推荐

基于差分隐私的Transformer模型安全训练实战指南

差分隐私是一种通过向数据或计算过程中添加可控噪声,来防止从输出结果中推断出个体信息的隐私保护技术。其核心数学原理是通过隐私预算ε和失败概率δ来量化隐私泄露风险,在保护数据的同时,力求最小化对模型效用的影响。这项技术在数据安全法规日益严格的背景下,为AI模型训练提供了合规且可靠的技术保障。在自然语言处理、计算机视觉等需要处理敏感数据的应用场景中,差分隐私能够有效防止训练数据泄露,化解隐私红线与模型性能之间的矛盾。本文以Transformer架构的大模型训练为例,结合Opacus和PyTorch工具链,详细解析

banglvfei0870的博客 466

社区讨论:Facebook反思HTML5技术

最近,Facebook掌门人扎克伯格表示,Facebook在过去几年中的最大错误在于对HTML5押注过多,忽视了原生应用,同时他对HTML5的长期趋势依然看好。针对扎克伯格的言论,国内开发社区对此展开了广泛的讨论,其中不乏真知灼见。\张克军认为HTML5非常适合移动互联网,但是Facebook的用户量太大,难以支持各种移动设备:\\HTML5用于移动互联网的解决方案无疑是最理想的,但问题在于当前...

cpongo5 198

NLP技术在社交媒体分析中的实战应用与优化

自然语言处理(NLP)作为人工智能的核心技术之一,通过词向量表示、注意力机制等算法实现文本语义理解。其核心价值在于将非结构化文本转化为可计算的特征表示,在情感分析、话题识别等场景展现强大能力。社交媒体分析作为典型应用领域,面临文本碎片化、实时性要求高等挑战。通过预训练模型(如BERT、RoBERTa)的领域适配和轻量化部署,结合情感极性判断、LDA话题建模等技术,可显著提升UGC内容挖掘效率。实践中,Twitter-RoBERTa等专用模型配合TF-IDF特征工程,能使舆情监测准确率达到90%以上,同时基于

weixin_30607029的博客 439

设计和编码集成的Facebook应用程序:HTML + CSS

欢迎回来! 在本教程的这一部分中,我们将把我们的设计编码为HTML,并说明一些FacebookCSS样式属性,这些属性将使它具有原生的感觉。 所以,请坚持我,让自己喝杯茶,享受快乐的编码! 介绍 欢迎来到我们设计的第2部分,并对本机Facebook应用进行编码。 在上一篇文章中,我们在幕后回顾了创建本地外观Facebook应用程序涉及的一些思维过程。 尽管我们没有在Photoshop中...

Web design 教程小屋 581

AI选举预测的真相:从胜率幻觉到趋势建模

政治预测并非传统意义上的‘结果预测’,而是在高度不确定、低信噪比、强制度约束的真实场景中,对动态过程进行统计推断的技术实践。其核心原理在于识别历史模式与当前信号之间的稳健关联,而非拟合表层相关性;技术价值体现在将碎片化数据(如邮寄选票处理量、邮政编码基础设施、官方PDF页脚定义)转化为可解释、可归因、可行动的趋势判断;典型应用场景覆盖摇摆州计票斜率预估、蓝红票源结构拆解、结果震荡阈值预警等工程化任务;本文基于2020美国大选实战复盘,深入剖析AI在选举建模中为何必须放弃‘胜率预测’,转向‘动态趋势建模’与‘

521

HTML5-Canvas-to-FB-Twitter:将HTML5 Canvas共享到Facebook和Twitter的示例

HTML5 Canvas到FB Twitter 将HTML5 Canvas共享到Facebook和Twitter的示例 教程: : 演示: :

Facebook引发的html5危机

不错的文章,转载一下 [url]http://www.devdiv.com/Facebook%E5%BC%95%E5%8F%91%E7%9A%84HTML5%E5%8D%B1%E6%9C%BA-article-4211-1.html[/url]

malong26 222

怒怼|扎克伯格到底是个怎样的人

西雅图IT圈:seattleit【今日作者】拖拉机IT圈里烧柴油的干货担当全球最大社交网络公司脸书可以说是开年不顺数据泄漏问题重创了脸书公司的股票也引发了全球网民对科技巨...

西雅图IT圈 3979

EDA开源仿真工具verilator入门4:访问函数介绍

访问函数(Visitor Function)是verilator算法实现的主要工作方式之一,本节将介绍一下访问函数。

fangfanglovezhou的博客 1075

【tensorrt】——深入解析TypeError: pybind11::init()报错:CUDA版本冲突与解决方案

本文深入解析了TensorRT中常见的TypeError: pybind11::init()报错问题,重点探讨了CUDA版本冲突的根源与解决方案。通过实际案例展示了PyTorch与TensorRT的版本兼容性问题诊断方法,并提供了conda环境管理、环境变量配置等实用修复技巧,帮助开发者有效解决CUDA初始化失败问题。

ggg99的专栏 271

从英特尔“Me The Musical”看数据驱动的个性化营销叙事策略

数据可视化与个性化内容生成是数字营销领域的关键技术。其核心原理在于通过算法整合用户数据与预设模板,将抽象信息转化为情感化的叙事体验。这项技术的价值在于能有效搭建品牌与用户之间的情感桥梁,将冰冷的科技演进史与个人生命历程绑定,从而在用户心智中塑造深刻的品牌记忆。典型的应用场景包括年度总结报告(如音乐平台年度歌单)、品牌互动活动以及用户成长轨迹回顾。本文以英特尔经典的“Me The Musical”营销活动为案例,深入剖析了其如何通过选择性叙事和社交裂变设计,实现情感绑定与可控怀旧,为当今的个性化营销提供了可复

weixin_28698129的博客 344

Linux服务器上后台运行jupyter notebook/Lab

1 安装配置教程2 后台运行jupyter3 更改运行环境kernel4 SSH端口转发 1 安装配置教程 可以参考:https://www.cnblogs.com/thousfeet/p/10647102.html 2 后台运行jupyter screen -S jupyter # 新建一个名为jupyter的后台screen # 在base环境下,先 cd 到指定文件目录 jupyter notebook # or jupyter lab 3 更改运行环境kernel 需要手动为每个环境添加内.

strivequeen的博客 1834

Django金融时间序列数据中的异常检测与风险预警系统设计与实现

目 录 摘 要 I ABSTRACT III 1. 绪论 5 1.1 研究背景及意义 5 1.2 国内外研究现状 6 1.3 研究内容与方法 7 1.3.1 研究内容 7 1.3.2 研究方法 8 2. 相关技术介绍 10 2.1 Hive 概述 10 2.2 Python 编程语言概述 10 2.3 MySQL 数据库介绍 11 2.4 Django 框架 11 2.5 Echarts 11 3.系统分析与设计 13 3.1系统说明 13 3.2系统可行性分析 13 3.3系统的设计思想 14 3.

weixin_41915110的博客 254

STM32 MCU解除读保护的方法及STM32CubeProgrammer的应用

下面是一个简单的源代码示例,演示如何在STM32CubeProgrammer中使用命令行界面(Command-Line Interface,CLI)来解除STM32 MCU的读保护。通过按照这些步骤操作,您可以成功解除STM32 MCU的读保护,并在需要的时候进行调试、烧录或修改固件。模块调用了STM32CubeProgrammer的命令行界面(CLI),并传递了相应的参数来解除STM32 MCU的读保护。请注意,在进行任何与读保护相关的操作之前,请确保您拥有合法的授权和权利,以避免潜在的安全风险。

ZwcCsharp的博客 3548

RT-DETR算法优化改进:DCNv4更快收敛、更高速度、更高性能,效果秒杀DCNv3、DCNv2等 ,助力检测

DCNv4更快收敛、更高速度、更高性能,完美和RT-DETR结合,助力涨点

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1323

Python深度学习:从入门到实战

亲爱的读者,欢迎您翻开这本书。我们即将探索的,是深度学习的宇宙——一个由数据、算法与算力构筑的奇妙世界。它既是严谨的科学,也是创造的艺术,更是一条通往未来智慧的修行之路。本书将带您从最基础的数学原理出发,亲手搭建神经网络,驾驭Transformer等前沿模型,最终将智慧转化为现实世界的价值。请放下畏惧,保持好奇。这不仅是一次知识的学习,更是一场思维的远行。来,随我一起,开启这趟非凡的旅程吧。

weixin_45747731的博客 296

Selenium|通过更改亚马逊amazon的配送地获取当地的cookie

如果我们需要拿到国外配送地的商品信息,这个时候就需要用到selenium或者pypputeer自动化的方法去更改配送地,拿到当地的cookie信息,之后,携带当地的cookie使用requests发送请求,就可以拿到国外配送地的商品数据信息。一般来说,我们访问亚马逊,亚马逊的配送地一般显示的是国内,但是国内的商品信息和国外的商品信息其实是存在很大差别的,比如你在搜索框输入某个关键词,看到的

Python进阶专栏《爬虫实战进阶》,《Pyppeteer从入门到精通》原创作者 993
上一篇: 关于移动应用在线开发平台AppCan:内行看门道外行看热闹
下一篇: Webkit For Android
wolfman79
博客等级 码龄24年 25粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值