HTML5程序设计(第2版) 第一章:HTML5概述(2)

2020-02-22 12:11

6 第1章 HTML5概述 1.4.2 效率和用户优先

HTML5规范是基于用户优先准则编写的,其宗旨是“用户至上”,这意味着在遇到无法解决的冲突时,规范会把用户放到第一位,其次是页面作者,再次是实现者(或浏览器),接着是规范制定者(W3C/WHATWG),最后才考虑理论的纯粹性。因此,HTML5的绝大部分是实用的,只是有些情况下还不够完美。

看看这个示例,下面的几种代码写法在HTML5中都能被识别。

当然,肯定会有人反对这种不严格的语法,我们不去辩论对错,只去关心一个底线,那就是最终用户其实并不在乎代码怎么写。当然,我们并不提倡入门者一开始写代码就这么不严谨,毕竟归根结底,受害者还是最终用户,因为一旦由于开发人员的原因造成页面错误导致不能正常显示,那么被折磨的肯定是最终用户。

HTML5也衍生出了XHTML5(可通过XML工具生成有效的HTML5代码)。HTML和XHTML两种版本的代码经过序列化应该可以生成近乎一样的DOM树。显然XHTML的验证规则严格得多,刚才示例中后两行代码是无法通过验证的。

1. 安全机制的设计

为保证HTML5足够安全,HTML5在设计时就做了大量的工作。规范中的各个部分都有专门针对安全的章节,并且安全是被优先考虑的。HTML5引入了一种新的基于来源的安全模型,该模型不仅易用,而且对各种不同的API都通用。这个安全模型可以让我们做一些以前做不到的事

1.4 新的认识 7 情,不需要借助于任何所谓聪明、有创意却不安全的hack就能跨域进行安全对话。在这方面,我们肯定不会怀念过去的“好”时光了。

2. 表现和内容分离

在清晰分离表现和内容方面,HTML5迈出了巨大的步伐。HTML5在所有可能的地方都努力进行了分离,也包括CSS。实际上,HTML5规范已经不支持老版本HTML的大部分表现功能了,但得益于先前提到的HTML5在兼容性方面的设计理念,那些功能仍然能用。表现和内容分离的概念也不是全新的,在HTML 4 Transitional和XHTML1.1中就已经开始用了。Web设计者把这个概念当做最佳实践使用了很久,不过现在清晰地分开表现和内容显得更为重要,否则会有如下弊端:

1

2 3 4 5 6 可访问性差;

不必要的复杂度(所有样式代码都放在页面中,代码可读性很差); 文件变大(样式内容越多,文件越大),带来的后果就是页面载入变慢。

7 8 1.4.3 化繁为简

HTML5要的就是简单、避免不必要的复杂性。HTML5的口号是“简单至上,尽可能简化”。因此,HTML5做了以下这些改进:

以浏览器原生能力替代复杂的JavaScript代码;

8 9 新的简化的DOCTYPE; 新的简化的字符集声明; 简单而强大的HTML5 API。

10 11

8 第1章 HTML5概述 随后我们将详细讲解这些改进。

为了实现所有的这些简化操作,HTML5规范已经变得非常大,因为它需要精确再精确。实际上要比以往任何版本的HTML规范都要精确。为了达到在2022年能够真正实现浏览器互通的目标,HTML5规范制定了一系列定义明确的行为;任何歧义和含糊都可能延缓这一目标的实现。

另外,HTML5规范比以往的任何版本都要详细,为的是避免造成误解。HTML5规范的目标是完全、彻底地给出定义,特别是对Web应用。所以也难怪,整个规范超过了900页!

基于多种改进过的、强大的错误处理方案,HTML5具备了良好的错误处理机制。非常有现实意义的一点是,HTML5提倡重大错误的平缓恢复,再次把最终用户的利益放在了第一位。比如,如果页面中有错误的话,在以前可能会影响整个页面的显示,而HTML5不会出现这种情况,取而代之的是以标准方式显示“broken”标记,这要归功于HTML5中精确定义的错误恢复机制。

1.4.4 通用访问

这个原则可以分成三个概念。

可访问性:出于对残障用户的考虑,HTML5与WAI(Web Accessibility Initiative,Web可访问性倡议)和ARIA(Accessible Rich Internet Applicaions,可访问的富Internet应用)做到了紧密结合,WAI-ARIA中以屏幕阅读器为基础的元素已经被添加到HTML中。 媒体中立:如果可能的话,HTML5的功能在所有不同的设备和平台上应该都能正常运行。 支持所有语种:例如,新的元素支持在东亚页面排版中会用到的Ruby注释。

1.5 无插件范式 9 1.5 无插件范式

过去,很多功能只能通过插件或者复杂的hack(本地绘图API、本地socket等)来实现,但在HTML5中提供了对这些功能的原生支持。

插件的方式存在很多问题: 插件安装可能失败;

插件可以被禁用或屏蔽(例如Apple的iPad就不支持Flash插件); 插件自身会成为被攻击的对象;

插件不容易与HTML文档的其他部分集成(因为插件边界、剪裁和透明度问题)。

虽然一些插件的安装率很高,但在控制严格的公司内部网络环境中经常会被封锁。此外,由

1

2 3 4 5 6 7 于插件经常还会给用户带来烦人的广告,一些用户也会选择屏蔽此类插件。这样的话,一旦用户禁用了插件,就意味着依赖该插件显示的内容也无法表现出来了。

在已经设计好的页面中,要想把插件显示的内容与页面上其他元素集成也比较困难,因为会引起剪裁和透明度等问题。插件使用的是自带的渲染模型,与普通Web页面所使用的不一样,所以当弹出菜单或者其他可视化元素与插件重叠时,会特别麻烦。此时,HTML5却可以站出来,挥舞着它的原生功能魔棒,对这类问题笑而不语,它可以直接用CSS和JavaScript的方式控制页面布局。实际上这是HTML5的最大亮点,显示了先前任何HTML版本都不具备的强大能力。HTML5不仅仅是提供新元素支持新功能,更重要的是添加了对脚本和布局之间的原生交互能力,基于此,我们可以实现以前不能实现的效果。

8 8 9 10 11 10 第1章 HTML5概述 以HTML5中的canvas元素为例,有很多非常底层的事情以前是没办法做到的(比如在HTML4的页面中就难画出对角线),而有了canvas就可以很轻易地实现了。更为重要的是新API释放出来的潜能,以及通过寥寥几行CSS代码就能完成布局的能力。基于HTML5的各类API的优秀设计,我们可以轻松地对它们进行组合应用。比如,从video元素中抓取的帧可以显示在canvas里面,用户单击canvas即可播放这帧对应的视频文件。这只是一个使用原生方法实现插件功能的示例。其实,当工作不再基于黑盒后,开发反而会变得更简单。HTML5的不同功能组合应用为Web开发注入了一股强大的新生力量,这也是我们为什么决定写一本关于HTML5编程的书,而不单单是介绍那些新元素的原因。

HTML5包括什么,不包括什么

那么,HTML5到底包括些什么?仔细阅读过规范的读者,可能会发现本书中讲解的很多功能其实在规范中是没有的。例如,Geolocation和Web Workers就不在规范中。那为什么还要将它们纳入本书的讨论范围呢?炒作?当然不是!

很多HTML5的研究成果(如Web Storage和 Canvas 2D)起初都是HTML5规范的一部分,后来移出来列入了单独的规范中,这么做是为了让HTML5规范更好地突出重点。在成为官方规范之前,先单列出来进行讨论和编辑不失为一个好办法。这样的话,即使存在争议,也不会影响到整个规范。

在讨论某个功能的时候,特定领域的专家可通过邮件列表的方式共同探讨,不会因为喋喋不休而引起激辩。业界仍然倾向于把原始功能集都视为HTML5,其中包括Geolocation。这样的话,HTML5不仅涵盖了核心的标记元素,同时也可以包括很多很酷的新API。写这本书的时候,下面这些功能也属于HTML5:

Canvas(2D和3D) Cross-document消息传送 Geolocation


HTML5程序设计(第2版) 第一章:HTML5概述(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:国有企业绩效管理研究

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: