<分区>
我正在为大多数用户在 iphone 上(一些在黑莓手机上)构建一个移动应用程序(混合移动网络应用程序,但具有 native 外壳),我想知道它应该用 html5 还是 xhtml 编写?
任何见解都会很棒。
<分区>
我正在为大多数用户在 iphone 上(一些在黑莓手机上)构建一个移动应用程序(混合移动网络应用程序,但具有 native 外壳),我想知道它应该用 html5 还是 xhtml 编写?
任何见解都会很棒。
最佳答案
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
之一s(如 HTML4 Transitional)。
显而易见的选择是通过放置(任何)现代 DOCTYPE
来启用标准模式在每个文档中。
text/html
对比application/xhtml+xml
强>。 XML 模式启用了 HTML 中没有的 XHTML 功能(例如 namespace 和所有 元素上的自闭合语法),最重要的是启用了严格的错误处理。
注意:不可能从文档中启用 XML 模式。启用它的唯一方法是通过真正的 Content-Type
HTTP header (为此忽略 <meta>
和 DOCTYPE
!)
在 WAP 和 XHTML Basic 时代,XML 模式被认为是移动设备的最佳模式,但实际上它是 turned out to be a fantasy!
如果您使用 application/xhtml+xml
模式下,许多 GSM 连接用户将完全无法访问您的页面!
主要的移动运营商使用了一些代理软件,至少在我测试过的英国和波兰,它将无效的 HTML 注入(inject)所有看起来像 HTML 的东西,包括正确提供的 XHTML 文档.
这意味着您的格式良好的完美 XHTML 将在传输过程中被破坏,用户只会看到 XML 解析错误。用户将无法就此问题通知您,并且由于标记在您的服务器外部格式不正确,因此您无法修复。
这就是所有 XML 模式(正确提供的 XHTML)页面在 O2 UK 上的样子:
(页面在通过 Wi-Fi 或 VPN 加载时呈现良好,防止移动运营商搞砸标记)
关于iphone - 移动:html5 与 xhtml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1455796/