目录:
你听说过吗? HTML5应用程序将在 明年 改变一切。 至少这是关于HTML5与本机应用的争论的一方已经说了一段时间。 这是一条时不时地引起人们关注的信息,它将永远是那样的。 或者至少在实际发生之前,所有最好的应用都是HTML5应用。 看到开发人员有各种各样的辩论和支持者解释他们的版本是如何更好的版本,这并不罕见,但当事情超出开发人员的讨论范围并进入你和我听到的主流时,他们会让我们麻木。 我们真的应该关心我们听到的内容吗?
在这种情况下,是的。 虽然每个应用程序都是用HTML5编写并且每个用户都具有相同体验的乌托邦仍然是一个很好的方法, 如果 它发生,混合形式的HTML5已经是一个相当大的交易。 我们应该了解并理解任何重要的事情。
什么是HTML5应用?
大多数人第一次听到HTML5被提及的时候,史蒂夫乔布斯告诉我们所有这一切都将是网络的未来,而Flash则不会。 他的声明之所以如此,部分是因为Apple阻止了对iOS上任何类型的Flash播放器的访问,但它并没有任何形象的有远见者知道这种情况即将到来,因为HTML5比Flash有更多的优势。 事实上,网络的未来也是编写应用程序的好方法。
HTML代表超文本标记语言,我们处于标准的第5版。 但是当你听到HTML5应用这个术语时,无论是网络应用还是你可以在手机上安装的应用,你真的要处理三种类型的代码。
- HTML提供了一个框架,开发人员可以在其中放置代码,应用程序可以将其转换为我们可以看到和交互的内容。
- CSS提供了一种方法来布局各个代码在渲染和显示在屏幕上后的外观。
- JavaScript是使它全部交互并能够“做”任何事情的原因。
HTML5的优点在于,应用程序开发人员无需维护的所有应用程序都可以理解所有内容,并且所有应用程序都可以在具有该应用程序自己版本的屏幕的任何设备上运行。 我们谈论的是网络浏览器,但不是网络浏览器应用本身。 Web浏览器的组件可以获取所有这些代码并将其呈现为我们可以即时使用的内容,它是相当可移植的,并且是您已经用作Web视图的许多应用程序的一部分。
一位Mozilla工程师曾经说过“代码一旦运行,并不意味着逃跑。优化是关键。” 聪明人,那些Mozilla工程师。
这意味着开发人员可以编写他或她的代码并对其进行微调,然后将其部署到 任何地方 。 这与为webOS和BlackBerry 10编写Android,iOS,macOS,Windows和HTML的单独代码有很大不同。开发人员可以使用他们选择的任何开发环境编写代码,无论是记事本还是像Visual Studio或Adobe Dreamweaver这样复杂的东西,在他们选择的任何浏览器中调试和微调它,它仍然只能在任何地方工作。
这也包括你的手机。 我们都看到HTML5应用程序被用作网页。 像Twitter或移动版Gmail这样的地方是HTML5工作的绝佳范例。 但由于HTML5可以通过Web视图组件呈现,因此在基本应用程序框架中放置一个窗口以创建实际安装在手机上的应用程序非常简单快捷。 甚至还有第三方工具可以为您完成所有工作,例如Apache Cordova。 这有助于新开发人员将他们的想法带给每个人以及经验丰富的开发人员,他们现在有时间想出我们以前从未见过的事情。 嵌入在本机应用程序中的HTML5可以运行代码并使用从Internet获取的资产,但开发人员也可以在本地安装这些资源,并将代码指向那里以实现诚实至善的脱机本机应用程序。
但并非HTML5的一切都很棒。
HTML5应用程序的现实
这里的事情会让人感到困惑。 当我们想到一个网页时,我们经常忘记网页只将其代码发送到浏览器引擎,而这是我们的设备完成工作。 这意味着地理定位,实时音频和视频聊天,3D加速图形等等不仅可以实现,而且开发人员可以使用HTML5轻松实现。 这是因为一个标准组织已经说过:“嘿伙计们,我们都需要以这种特殊方式做这件事,开发人员可以要求我们这样做。”
无论如何,这就是目标。 现实可能有点不同,我们只需要查看视频播放就可以了解原因。 您想要使用的每个浏览器都支持HTML5:Chrome,Opera,Internet Explorer,Edge,Firefox和Safari都是HTML5浏览器,并且只要开发人员输入几个指向视频的单词,就支持视频播放。 这些应用程序具有的任何类型的可移植Web视图组件都将执行相同的操作,因为它们使用相同的呈现引擎。
当你不执行规则时,他们会成为建议; 那些没人想跟随的。
但他们并不都支持相同类型的视频,因为HTML5是跨平台的,开放的,而不是专有的,因此没有人强迫他们支持所有格式。 Ogg Theora是一种流行的视频格式,除了Internet Explorer之外,每个浏览器都支持这种格式,而Internet Explorer恰好是许多计算机上的默认浏览器。 H.264甚至更受欢迎,但它不开放或免费使用,因此Firefox不支持它。 VP8和WebM可以免费使用和打开,每个浏览器引擎都支持它们,但Internet Explorer和Safari要求用户获取和安装支持。 从技术上讲,HTML5支持高清视频播放,开发人员可以非常轻松地实现它。 在现实世界中,仅支持 正确 类型的视频。
YouTube使用HTML5播放所有视频,因为Google可以转换您上传的视频。
HTML5还取决于使用的硬件以及开发人员在编写代码时的熟练程度。 选择错误的JavaScript库可能仍会产生相同的结果,但它也可能导致内存泄漏,并处理DOM操作(文档对象模型 - 在页面或应用程序加载时创建,并包含页面或应用程序中的每个元素作为一个单独的“文档”)可能会使HTML5应用程序即使是最好的硬件也会令人沮丧。 在功能不强的手机上,很快就会导致用户卸载您的应用。
这不是唯一的问题。 当您构建一个从互联网上提取所有内容的HTML5应用程序时,您必须处理加载时间。 这会将用户的连接速度添加到可以使您的应用程序运行缓慢的事物列表中,以及硬件的物理功能(许多手机使用不完全快速的处理器)和代码优化。 如果在用户设备上显示您的代码需要一秒钟,而从互联网上获取代码需要10秒钟,那么您将会遇到很多不满意的用户。
Facebook应用程序是HTML5错误的一个例子,就像Instagram是一个正确的例子。
这是一个很好的例子,无论我们使用什么类型的手机,我们几乎所有人都不满意:Facebook应用程序。 Facebook应用程序基本上是嵌入到框架中的Web视图,该框架包含按钮并帮助管理您的帐户凭据或以操作系统批准的方式推送消息。 在应用程序内部发生的所有事情都是用HTML5完成的,一旦你考虑从互联网上获取所有数据,它就太难以处理了。开发人员不断向Facebook添加越来越多的东西,用户正在发布托管在的大文件Facebook以外的地方,每周7天,每天都有数百万人同时关注Facebook的服务器。 这使得应用程序缓慢刷新,非常耗电,并且受到很多投诉。
Facebook的移动网站也是用HTML5编写的,但它的设计目标是资源,因为它适用于 移动设备 。 这使得加载您想要查看的内容变得更快,即使所有内容都没有像完整视图那样显示得那么好。 这也是为什么移动网站和引用它的Facebook“精简版”应用程序比Facebook的官方应用程序运行得更好的原因。 这不仅仅是一个Facebook问题 - 有很多应用程序可以使用HTML5支持所有功能,但同样复杂(对于臃肿的好词,因为它们已经存在一段时间并且不断变化)作为Facebook和会以同样的方式行事。
那么我想看到更多的HTML5应用程序吗?
是! 但并非 所有 应用。
HTML5在很多方面都非常擅长,对于开发人员来说,使用他或她的时间来思考创意而不是通过Objective-C或C ++参考手册进行生根是一种很好的方式。 但有时候,开发语言的严格结构迫使开发人员以某种方式做事,这使得最终结果在我们的手机上运行得更好。
HTML5应用程序可能是我们从Facebook应用程序看到的噩梦,或者它们可以像我们从移动Gmail网站上看到的那样非常棒。 或优步。 或Instagram。 或者我们每天使用的数百个HTML5应用程序中的任何一个。 这不是 我们 应该担心的事情,但开发人员无休止地争论是完全一件事。 现在,当他们辩论并试图说服你哪个更好时,你就会知道为什么他们会说出他们所说的话。
我们可能会使用我们的链接获得购买佣金。 学到更多。