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年了。不过,我们在一切还没有成为现实之前,尽可能使之完美。

标签:网页,标准,html,xhtml
0
投稿

猜你喜欢

  • php字符串截取函数用法分析

    2023-06-28 22:19:26
  • matplotlib.pyplot画图 图片的二进制流的获取方法

    2021-03-25 09:38:00
  • JavaScript继承模式粗探

    2024-04-23 09:25:20
  • 使用Python opencv实现视频与图片的相互转换

    2022-03-04 15:20:31
  • Python基于pip实现离线打包过程详解

    2021-09-13 06:11:08
  • Mysql之SQL Mode用法详解

    2024-01-24 06:19:19
  • Python利用psutil实现获取硬件,网络和进程信息

    2023-08-12 18:37:44
  • 用一条SQL实现:一行多个字段数据的最大值

    2008-12-31 13:37:00
  • asp使用shotgraph组件生成数字和字母验证码

    2007-09-26 12:26:00
  • 用SQL语句删除重复记录的四种方法

    2011-05-03 09:25:00
  • MySQL 序列 AUTO_INCREMENT详解及实例代码

    2024-01-20 17:04:37
  • 微信小程序 HTTPS报错整理常见问题及解决方案

    2024-04-19 09:47:08
  • Mysql5.7.14安装配置方法操作图文教程(密码问题解决办法)

    2024-01-28 03:04:36
  • sqlserver 数据库压缩与数据库日志(ldf)压缩方法分享

    2024-01-17 12:33:46
  • python-图片流传输的思路及示例(url转换二维码)

    2021-06-18 14:48:44
  • 不建议使用jquery的情况

    2008-03-10 12:28:00
  • python用正则表达式提取/匹配中文汉字

    2021-06-12 23:45:50
  • python 连续不等式语法糖实例

    2021-11-03 02:15:20
  • 详解JavaScript中的作用域链与闭包

    2024-04-22 13:07:00
  • Python+matplotlib实现堆叠图的绘制

    2023-07-21 17:38:35
  • asp之家 网络编程 m.aspxhome.com