【问题标题】:Why doesn't Google close td and tr tags in tables?为什么 Google 不关闭表格中的 td 和 tr 标签?
【发布时间】:2011-05-16 15:43:35
【问题描述】:

看HTML源代码

http://www.google.com/finance/historical?cid=983582&startdate=Nov+28,+2000&enddate=Nov+27,+2010&num=200

我发现 Google 永远不会关闭 tdtr 标记。源中没有</tr> 没有</td>

为什么?

<tr class=bb>
<th class="bb lm">Date
<th class="rgt bb">Open
<th class="rgt bb">High
<th class="rgt bb">Low
<th class="rgt bb">Close
<th class="rgt bb rm">Volume
<tr>
<td class="lm">Nov 26, 2010
<td class="rgt">11,183.50
<td class="rgt">11,183.50
<td class="rgt">11,067.17
<td class="rgt">11,092.00
<td class="rgt rm">68,396,121
<tr>

是否因为 XML 解析器无法读取它而使其更难解析?我已经指出 &output=csv 不适用于索引(此 url 不起作用:http://www.google.com/finance?q=INDEXDJX:.DJI&output=csv)而它可用于股票(http://www.google.com/finance/historical?q=NASDAQ:GOOG&output =csv 将起作用)以便在 csv 中获取索引的历史数据,您必须进行解析工作!

【问题讨论】:

  • 不,不是骗子,因为这是有效的 HTML
  • Google 有多个版本的主页。每个用于另一个浏览器。他们在每一个可能的方面都进行了优化。
  • Rebol:这不是 XHTML,而且他们从未声称它是。这并不是让它“更难解析”,因为在阳光下的每个 HTML 解析器仍然可以很好地处理它。

标签: html


【解决方案1】:

这是 HTML4(而不是 XML)。正如W3 specs中指出的那样:

11.2.6 表格单元格:TH 和 TD 元素

开始标签:必填,结束标签:可选

tr 同上:

11.2.5 表格行:TR 元素

开始标签:必填,结束标签:可选

我相信其目的是通过省略结束标签来最小化页面大小。他们做了各种额外的优化,实际上可能导致无效的 HTML,但由tagsoup mode 中的浏览器处理。

【讨论】:

  • 顺便说一句,这是使用 XML 解析器解析 HTML 的另一个原因。
  • 我宁愿认为这是为了防止解析而不是真正节省带宽,请参阅我的帖子更新。
【解决方案2】:

他们这样做是为了节省带宽。在 Google 的账本上,网络上传输的每个字节都是数千美元,所以为什么要浪费额外的数据字节来编写可读代码。然而,在过去的几年里,他们越来越不关心带宽,因为他们将服务器容量增加到了神一样的比例,因此更大的徽标文件(例如,他们的旧徽标 here 大约是 8.5kb gif看起来像垃圾的文件,而他们目前的文件是 25+kb PNG),所以我怀疑他们最终会提出一个更符合标准和更干净的主页。

【讨论】:

    猜你喜欢
    • 2022-12-11
    • 2023-03-09
    • 2016-03-18
    • 2013-03-23
    • 2012-10-30
    • 2012-12-14
    • 2016-02-26
    • 2012-04-16
    • 2014-10-09
    相关资源
    最近更新 更多