我要开始一个项目,客户要求使用XHTML 1.0 Strict。现在我想知道Sending XHTML as text/html Considered Harmful中描述的问题是否仍然存在,以及我是否应该试图说服客户这个(非常强烈的)要求是适得其反的。
Internet Explorer现在是否正确处理application/xhtml+xml
?
我要开始一个项目,客户要求使用XHTML 1.0 Strict。现在我想知道Sending XHTML as text/html Considered Harmful中描述的问题是否仍然存在,以及我是否应该试图说服客户这个(非常强烈的)要求是适得其反的。
Internet Explorer现在是否正确处理application/xhtml+xml
?
application/xhtml+xml
,包括其中的SVG,这是想要使用此媒体类型的主要原因之一。(否则,迄今为止使用它相对没有太多性能提升,只会得到一堆脚本更改和IE < 9不兼容的问题。)text/html
服务从未真正有害过。使用HTML兼容性指南,XHTML对任何浏览器都没有问题,自古代Netscape 4以来就如此。虽然它在客户端方面并没有真正的好处,但如果您正在使用XML处理工具,则可以帮助您自己的页面处理工作流程。 XML语法规则比HTML更严格但更简单,这是一个好的作者;这使验证器有机会检测到在SGML / HTML中是有效构造但几乎肯定不是您想要的错误。 (另一方面,由于验证器不会强制执行HTML兼容性指南,因此有几个地方可能会让经过良好格式化但麻烦的标记通过,最常见的是自关闭的<script>
标记破坏整个页面。)/>
和相关的SGML问题只对那些真正相信HTML是SGML的工具(过去没有任何浏览器)是一个问题。在未来,它特别允许在非XML HTML5中使用。<
和&
字符,则直接使用//<![CDATA[
即可,更常见的情况是您甚至不需要那个。text/html
。Internet Explorer 9将通过标签混乱解析器处理application/xhtml+xml文档。
Internet Explorer 8及更早版本会提示用户保存文档或在其他应用程序中打开它。
Internet Explorer 6及更高版本都有相当大的市场份额(尽管这在某种程度上取决于您的市场)。
多年来,关于真正的XHTML,浏览器支持方面没有发生重大变化。
除非您实际上在生产链中使用XML解析器(在这种情况下,祝您好运说服它们输出符合HTML兼容性指南的XHTML),否则这仍然会带来更多麻烦而不值得。
application/xhtml+xml
解析器并不是一个真正的标签混乱解析器。它会在XML格式错误时窒息和死亡;与其他浏览器的区别在于,它将显示到错误点为止页面到目前为止的内容,而不是用错误消息替换整个页面。遗憾的是(在当前测试版中)没有给出页面被过早终止的视觉指示,但这是一个开始。 - bobinceVary
头,这会给IE带来很大的缓存问题。对于大多数人来说,考虑到提供application/xhtml+xml
的薄弱实际优势,我并不认为值得这样做。 - bobince在过去的一年中(2017年5月27日至2018年4月27日),根据netmarketshare,IE 6、7和8的综合份额为1.72%。
其他主要浏览器都支持真正的XHTML(即使用application/xhtml+xml
MIME类型发送)。我的回答是“不,它不会有害”。
至于是否有优势,我猜在您真正理解和舒适地使用XML技术(如SVG、MathML等)之前,这并不重要(是的,HTML语法也支持它们,但实际上是一种黑客方式)。
如果浏览器制造商将更多精力投入到XML解析器中,那么对于纯解析速度仍然很重要。