【问题标题】:is well-formed html5 loaded faster than a crappy one?格式良好的 html5 加载速度是否比糟糕的加载速度快?
【发布时间】:2018-11-02 09:28:25
【问题描述】:

html5 不像 xml 那样严格,所以即使是这个糟糕的文件也会被 w3c html5 validator 验证:

<!doctype html>
<title>crappy html5</title>
<div class=dummy>
<h1>crappy html5</h1>
<p class=noclosetag>HTML5 is awesome
<ol class=navigator>
<li><a href=/>index</a>
<li><a href=/user>user</a>
<li><a href=/rss>rss</a>
</ol>
</div>

如果规则是允许的,那么一些懒惰的程序员可能会通过编写糟糕的文件来节省一些工作;但是,我想知道 这是否会导致明显的性能问题,因为浏览器需要纠正糟糕页面上的错误;我还没有做测试,部分原因是我不知道什么是对这些事情的公平和彻底的测试;

【问题讨论】:

  • 所以定义蹩脚。如果它是格式良好的 HTML,就像在这个例子中一样,它仍然很糟糕吗?老实说,我希望验证器会抱怨属性值中未引用的/。较早的SGML definition of HTML 没有提到斜线可以不被引用。
  • @MrLister 非正式的蹩脚使得正确解析和理解 html 文档的语义变得更加复杂;一个例子是未封闭的标签;您可以说您仍然知道如何为此类文档正确生成 dom 树,因为您的 html 知识与解析器一样好,但对于较少专家而言,这不太可能是正确的;形式上,糟糕和不糟糕之间的界限是文档是否可以被验证器成功解析;所以你可以肯定地说,从这个意义上说,上述文件并不糟糕,但这不是这个问题所要讨论的;
  • 您对搜索引擎的担忧是有效的。每个解析器都会有所不同,我经常遇到访问 HTTP 404 的搜索引擎,因为网站没有正确解析(或验证)URL(例如example.com/www.i-dont-know-how-to-link)。我的建议是将 HTML5 作为 XML (application/xhtml+xml) 提供,并确保简单的事情得到验证。更容易,因为在示例中input 元素现在支持type="url",尽管所有客户端数据都应始终进行验证。正确/严格的代码有很多好处,可以节省时间。

标签: html browser xhtml


【解决方案1】:

没有。 HTML 解析器真的不关心 HTML 的糟糕之处,而且“纠正错误”并不是它的工作方式。它只是简单地处理它看到的每个字节并相应地构造 DOM。

尽管解析器可能在控制台中报告解析错误,但您的示例无论如何都不包含任何解析错误。无论哪种方式,它对性能的影响为零。

如果你想研究解析器是如何工作的,在section 8 of the HTML5 spec中都有描述

【讨论】:

  • 也就是说,像这样的源加载速度可能会稍微快一些,因为要传输的字节更少。但不确定会产生多大的影响。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多