我正在构建一个移动应用程序(混合移动网络应用程序,但使用本机shell)与iphone上的大多数用户(一些在黑莓上),我想知道它是否应该用html5或xhtml编写?
任何见解都会很棒。
答案 0 :(得分:3)
tl; dr:使用HTML5,因为text / html XHTML被解析为HTML5,而正确的XHTML可能会失败。
目前的浏览器实际上不再支持HTML4或XHTML / 1.x.他们将所有文档视为HTML5 / XHTML5(例如<video>
即使您设置了HTML4或XHTML / 1.x DOCTYPE也会有效。
您的选择并非在HTML5和XHTML之间,而是在text/html
和XML
解析模式以及怪癖和标准渲染模式之间。浏览器引擎与W3C规范的版本不一致。
真正的选择是:
怪癖与标准模式。 “Quirks”是IE5错误和盒子模型的模拟。如果你没有放DOCTYPE
或使用过时的DOCTYPE
之一(如HTML4 Transitional),那么怪癖会咬人。
显而易见的选择是通过在每个文档中放置(任意)现代DOCTYPE
来启用标准模式。
text/html
vs application/xhtml+xml
。 XML模式支持不在HTML中的XHTML功能(例如所有元素上的命名空间和自动关闭语法),最重要的是启用严格的错误处理。
注意:无法在文档中启用XML模式。启用它的唯一方法是通过真实的Content-Type
HTTP标头(为此目的<meta>
和DOCTYPE
将被忽略!)
在WAP和XHTML Basic时,XML模式应该是移动设备的最佳模式,但在实践中它turned out to be a fantasy!
如果您使用application/xhtml+xml
模式,许多GSM连接用户将无法访问您的网页!
主流移动运营商使用了一些代理软件,至少在我测试过的英国和波兰,为看起来像HTML的所有内容注入无效的HTML ,包括正确提供的XHTML文档
这意味着您的格式良好的XHTML将在传输过程中被销毁,用户将只看到XML解析错误。用户将无法通知您有关此问题的信息,并且由于服务器外部的标记格式不正确,因此您无法修复此问题。
这就是O2 UK上所有XML模式(正确提供的XHTML)页面的样子:
(通过Wi-Fi或VPN加载时页面呈现正常,阻止移动运营商搞砸标记)
答案 1 :(得分:2)
HTML5和XHTML不是唯一的选择。您可以同时使用两者(XHTML 5),也可以不使用(HTML 4)。
我不会将文档创作到[X] HTML5,因为标准还没有完成,不管任何实现。我们在某些浏览器中提供的“HTML5”功能通常是脚本扩展,它们根本不会在标记级别影响HTML。
答案 2 :(得分:1)
我的理解是iPhone和Blackberry都没有完全支持HTML 5。因此,除非您需要某些特定的HTML 5功能,否则我会坚持使用XHTML。
答案 3 :(得分:0)
选择其中任何一个。 XHTML只是HTML的XML语言序列化,所以实际上,它只是以不同方式编码的DOM节点。 (也许我可以创建一个JSON序列化的HTML版本?)实际上,SGML或XML序列化的选择取决于设备是否支持它。 Apple使用WebKit,它完全支持XHTML。
请记住将您的XHTML作为application / xhtml + xml发送,否则它将不会被视为XHTML!
哦......还有一件事。我知道的所有浏览器都支持XHTML,除了IE。