Google Pagespeed 推荐 <script> 作为 <html> 的直接子元素 - 有效 HTML?

Google Pagespeed recommends <script> as direct child element of <html> - valid HTML?

根据 Google Pagespeed 的建议,一位同事将 <script> 标签放在 </body></html> 结束标签之间。我的直接假设是 <html> 只允许 <head><body> 作为直系后代,我无法在 W3C specs:

中准确验证

它说:

Content model: A head element followed by a body element.

为了清楚起见,Google pagespeed 建议看起来有点像这样:

<!DOCTYPE html>
<html>
  <head>...</head>
  <body>...</body>
  <script>...</script>
  <script>...</script>
  <script>...</script>
  <script>...</script>
</html>

有没有人知道得更好或更准确,并且可以提供 link 相关信息?

内容模型非常清楚地说明了这一点:html 元素可以合法拥有的唯一子元素是一个 head 元素,后面跟着一个 body 元素。不是单独的头部元素,不是单独的主体元素,也不是主体后跟头部,当然也不是任何 other 元素。 script 元素可能出现在许多上下文中,但它必须始终是 head 元素或 body 元素的后代。

Google 以建议作者忽略标准而支持勉强发挥每一点性能而闻名,尤其是当已知这样做不会产生任何不利影响或导致任何不同的浏览器行为时。这取决于他们想要遵循的指南的作者。