在将 JavaScript 放在 </body> 标签前和放在 </html> 标签前有什么区别吗?

4

10
我不相信<script>标签是<html>的有效子元素。 - Shmiddty
1
我认为标签不允许在head或body标签之外。 - Christophe
3
这不是有效的HTML,<script>标签可以在<head>或<body>中使用,但不能放在其他地方。 - Alex K.
1
这似乎是一种可以通过查看W3C HTML规范来回答的问题。只是说一下... - Brian Driscoll
@BrianDriscoll 等等?这些东西是标准化的吗?:P - Šime Vidas
如果你想知道为什么有些脚本要在 </body> 结束标签前加载而不是在 <head> 标签内部加载,那么这些链接可能会有所帮助:- 将 jQuery/javascript 源页面放在 body 结束标签之前将 jQuery 移动到 body 结束标签后面? - Adam Tomat
2个回答

5
评论是正确的: <script>headbody之外不是有效的HTML。 这里是相关规范

Content Model

A head element followed by a body element.

如果我只是重复评论中的内容,并将其发布为答案,我会得到很多声望。我是天才! :P - Šime Vidas
@ŠimeVidas 嘿,如果评论者不想要声望,那我就接受了。;-) 话说,我已经添加了相关信息。 - Evan Davis
1
@Mathletics 这个问题实际上应该关闭,这就是为什么评论者没有打算发布答案的原因。 - Shmiddty
@Mathletics 你提到了HTML 5.1夜间规范?天啊,我爱死你了。:) - Šime Vidas
@ŠimeVidas 现在已经找到了完全重复的内容,应该将其关闭。 - Evan Davis
2
@jfrej 我怪帽子。 - Shmiddty

0

我不是专家,但根据我的经验,只要你的 JS 在头部或 body 标签中,你放置 JS 的位置并不会有很大的影响。

我和我的同事通常将 JS 放在头部标签中(出于可读性和一致性考虑)。但是,我已经阅读了(这里这里),为了获得最佳性能,你应该将 JS 放在闭合 BODY 标签之前。再次强调,在我的经验中,我没有注意到任何重大的性能差异。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接