移动端:HTML5与XHTML对比

3
我正在开发一个移动应用程序(混合式移动Web应用程序,但带有本机外壳),大多数用户使用iPhone(部分用户使用黑莓),想知道它应该使用HTML5还是XHTML编写?
任何见解都将非常有用。
4个回答

3

简而言之:使用HTML5,因为text/html XHTML将被解析为HTML5,并且正确的XHTML可能会出现严重错误。


当前的浏览器实际上已不再支持HTML4或XHTML/1.x。它们将所有文档视为HTML5/XHTML5(例如,即使您设置了HTML4或XHTML/1.x DOCTYPE,<video>也可以正常工作)。

你的选择并不是在HTML5和XHTML之间,而是在text/htmlXML解析模式以及怪癖和标准渲染模式之间。浏览器引擎与W3C规范的版本不一致。

真正的选择是:

  1. 怪异模式 vs 标准模式。 "怪异"是模拟IE5的错误和盒子模型。如果您未放置DOCTYPE或使用过时的DOCTYPE之一(如HTML4过渡),则会出现问题。
    明显的选择是在每个文档中放置(任何)现代DOCTYPE,以启用标准模式。

  2. text/html vs application/xhtml+xml。 XML模式启用了HTML中没有的XHTML功能(例如命名空间和所有元素上的自关闭语法),最重要的是启用了严格的错误处理
    注意:无法从文档内部启用XML模式。启用它的唯一方法是通过真正的Content-Type HTTP头(为此目的,<meta>DOCTYPE将被忽略!)

在WAP和XHTML Basic时代,XML模式应该是移动设备的最佳选择,但实际上结果证明这是一种幻想!

如果您使用application/xhtml+xml模式,您的页面将无法访问许多GSM连接的用户!
在英国和波兰至少我测试过的地方,一些主要移动运营商使用了一些代理软件,它会向所有看起来像HTML的内容注入无效的HTML,包括正确提供的XHTML文档。
这意味着您格式良好、完美的XHTML将在传输过程中被破坏,用户只会在自己的端口看到XML解析错误。用户将无法通知您有关问题,而且由于标记在服务器外部是格式不正确的,这不是您可以修复的问题。
这就是所有XML模式(正确提供的XHTML)页面在O2 UK上看起来的样子:

enter image description here

(当通过Wi-Fi或VPN加载页面时,页面呈现良好,这可以防止移动运营商破坏标记)

2

HTML5和XHTML并不是互相排斥的选择。您可以同时使用两者(XHTML 5),或者都不使用(HTML 4)。

我不建议立即编写[X]HTML5文档,因为该标准尚未完成,更别说任何实现了。我们在一些浏览器中可用的“HTML5”功能通常是不影响HTML标记级别的脚本扩展。


1

我的理解是,iPhone和Blackberry都还没有完全支持HTML 5。因此,除非您需要某些特定的HTML 5功能,否则我建议您使用XHTML。


0

随便选一个。XHTML只是HTML的XML语言序列化,因此实际上它只是以不同方式编码的DOM节点。(也许我可以创建一个HTML的JSON序列化版本?) 实际上,SGML或XML序列化的选择取决于设备是否支持。苹果使用WebKit,它完全支持XHTML。

记得将你的XHTML发送为application/xhtml+xml,否则它将不会被视为XHTML!

哦...还有一件事。所有我知道的浏览器都支持XHTML,除了IE。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接