HTML 5 V.S. XHTML 2:HTML5倍受青睐,XHTML2处境尴尬
作者:dudo 来源:dudo博客 发布时间:2009-06-08 12:57:00
HTML 5 和 XHTML 2规范草稿公布以来,一直存在很大的争议。HTML 5是由包括Google、Mirosoft、Mozilla、Opera、Apple在内多家浏览器厂商共同起草的下一代web规范。而XHTML 2则是由W3C工作小组起草提交的。HTML 5 和 XHTML 2最终都被W3C接受成为候选方案,从此HTML 5 和 XHTML 2便成了相互竞争的两种标准。不过最近浏览器厂商们对HTML 5表现出了前所未有的热情,让XHTML 2的处境略显尴尬。
前不久结束的Google I/O大会上,Google演示了一系列基于HTML 5技术之上的web应该,其中包括离线存储、用户交互、2D绘画等,并表示将来在Adroid和Chrome中加大对HTML 5的支持。微软也表示在下一的浏览器中逐渐加入对HTML 5的支持。网上对HTML 5 和 XHTML 2的比较有不少很好的文章,都值得参考,这里我不想说太多技术上的东西,只谈谈自己对于HTML 5 和 XHTML 2两种标准的理解。
一、未来的Web都需要这两种标准
HTML 5旨在提高网页性能,增加页面交互。HTML 5中增加了不少新的标签,如audio、video、canva等,其交互功能都大超过了XHTML 1.1t和HTML 4.01,这比完全依赖于JavaScript来实现这些功能效率更高更准确。HTML 5让页面内容更加丰富,使超文本更加名副其实。而XHTML 2.0更加注重页面规范和可用性。在XHTML 1.1的基础上,XHTML 2.0根据原定目标——使Web语言逐渐由HTML过度到XML——做出了巨大改进。从Web标准的角度说,XHTML 2.0是一个飞跃,这一点HTML 5则做的不够好。不过HTML 5还提供了另种解析方式,将MIME类型设定为 application/xhtml+xml时,浏览器会使用XML解析器对其进行解析,所以HTML 5的正确名称应该是X/HTML 5。
我们抛开HTML 5与XHTML 2中新增加的标签等不说,未来的Web需要更加强大的功能以实现更加丰富的页面表现,但是同样未来的Web编写应该更加规范,更加体验web的易用性,不过两方面却体现两种规范中,虽然浏览器可以通过不同的命名空间来区分它们,但是我们却无法在同一个文档中同时使用两种规范。
二、我们不需要两种规范
HTML 5还有一个优点是它的向后兼容性,HTML 4在HTML 5的命名空间中仍然可以使用,但是XHTML 2却与XHTML 1.1出现了断层,这也是XHTML 2.0的一个软肋。HTML 5和XHTML 2的竞争实际上是浏览器厂商和W3C标准组织的竞争,其未来的结果很可能是一种妥协方案:浏览器同时支持两种规范。这看似不错,但是仔细想想,我们根据不需要两种规范。因为最终结果是我们的web文档只能是其中的一个,难道让我们在实现强大功能的时候放弃更加优秀的web标准?而且HTML 5和XHTML 2在标签上存在很大差异,这与HTML 4和XHTML 1.1区别完全不同,我们几乎不需要去记忆哪个标签可能在HTML 4中使用哪个可能在XHTML 1.1中使用,因为他们在这方面几乎没有区别,但是HTML 5和XHTML 2不同,他们各自有不同的标签,如果你一不小心记错的话,你可能会遇到不小的麻烦,这无论对于web开发初学者还是其他人员来说都将是个问题。
我的期望是HTML 5和XHTML 2即便真的作为两种规范问世,那么他们的区别也仅仅是HTML 4与XHTML 1.1的区别。我们可以通过简单修改命名空间(HTML不需要命名空间,但是X/HTML 5需要),少量修改代码即可完成转换。竞争是好的,但不要各自为政,相互融合相互借鉴才会产生好的标准。我知道W3C的工作组看不起WHATWG的自私自利,WHATWG也瞧上W3C的傲慢,但是所有的标准只有得到浏览器的支持才是有用的标准,所有的浏览器都支持统一有约束力的标准Web开发才能进行。所以也许两者最后成为一个标准才是最好的选择。
三、也许一切都要等到十年后
XHTML 2已经公布了第8个工作草稿,但是仍然存在一些问题,当然最重要的问题就是浏览器的问题。目前浏览器无论对于XHTML 2还是HTML 5的支持都非常非常少,要比对CSS 3的支持还要少,所以当我们真正可以使用它们来做开发工具的时候,也许是2020年了。不过,我们在一切还没有成为现实之前,尽可能使之完美。


猜你喜欢
- 我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的完整教程,希望大家多多支持。1、定时任务定时任务,顾名思义: 定时执行的任
- 揭秘一个普通的输入框背后惊人的秘密。某月某日,某项目某页面,需要一个价格区间筛选功能,需求合理,所以设计做上去。这是一个无比普通的输入框。在
- 1、定义和使用列表在Python中,列表是由一系列元素按照特定的顺序构成的数据结构,也就是说列表类型的变量可以存储多个数据,且可以重复。1.
- 本文实例讲述了Python中pandas模块DataFrame创建方法。分享给大家供大家参考,具体如下:DataFrame创建1. 通过列表
- 打开一个Project在导航区带出多个Project将会影响PyCharm的运行速度,解决这个问题的方式只打开一个即可。有时候打开一个Pro
- 循环和列表不管怎样,程序会做一些重复的事情,下面我们就用for循环打印一个列表变量。做这个练习的时候你必须自己弄懂它们的含义和作用。在使用f
- 最近有个朋友提到如何使用sql来删除一个字段中部分内容,于是就写了这篇文章,简单记过:测试表如下:CREATE TABLE `t` (&nb
- 想必大家都知道MSSQL中SA权限是什么,可以说是至高无上。今天我就它的危害再谈点儿,我所讲的是配合NBSI上传功能得到WebShell。在
- 如果仅仅是定义表格的边框为1(border="1")和边框颜色值(如borderC
- set oSQLServer =server.createobject("SQLDMO.SQLServer")oSQLS
- 在pyqt5编程过程中,经常会遇到输入或选择多个参数的问题,把多个参数写到一个窗口中,主窗口会显得很臃肿,所以,一般是添加一个按钮,调用对话
- 本文实例讲述了Python使用pylab库实现画线功能的方法。分享给大家供大家参考,具体如下:pylab 提供了比较强大的画图功能,但是函数
- VS2013的简单WInForm控件,通过WebRequest,WebResponse来访问,接收:private void btn_int
- 操作系统:win7 64位旗舰版mysql压缩包:mysql-5.7.11-winx64.zip1. 解压MySQL压缩包将下载的MySQL
- 今天在网上找到了一个可以动态加载js文件的js加载器,具体代码如下:JsLoader.jsvar MiniSite=new Object()
- 简介由于http协议的请求是无状态的。故为了让用户在浏览器中再次访问该服务端时,他的登录状态能够保留(也可翻译为该用户访问这个服务端其他网页
- 很多开发者说自从有了 Python/Pandas,Excel 都不怎么用了,用它来处理与可视化表格非常快速。下面我来举几个例子。1. 删除重
- 两者在使用效果上没有任何区别,都是为了将实例化后的vue挂载到指定的dom元素中。如果在实例化vue的时候指定el,则该vue将会渲染在此e
- 在网上看到一个小需求,需要用正则表达式来处理。原需求如下:找出文本中包含”因为……所以”的句子,并以两个词为中心对齐输出前后3个字,中间全输
- 看一个网站其实就好比品评一个美女。一看长相,我们很多时候关注的是视觉,比如老板经常会说,你做几个页面让我看看!二看身材,也有很多关注标准和s