JavaScript函数应该放在哪里?<head>标签内?<body>标签内?还是</html>标签后面?

9
我对JavaScript函数应该放置在何处感到困惑:
它们应该放在head标签内部什么时候? 什么时候应该放在body标签内联? 以及,在结束html标记后什么时候放置?
谢谢。

1
请将 JavaScript 放在 HTML 文件的底部。 通过将脚本放在页面底部,可以确保页面首先加载,然后再加载脚本。 这样可以提高网站的加载速度,并改善用户体验。 - jacktheripper
我已经看到这个问题很多次了,但我不记得曾经见过“在</html>之后”作为一个选项。 - Brandon
我将它放在闭合的body标签后面。 - Packet Tracer
3个回答

13

这方面规则宽松,没有绝对的对错之分,只有更好和不那么好的区别。 (当然在</html>后是错误的)

一般来说,文档头中的javascript可能会阻止页面渲染,直到文件在某些浏览器*cough*IE*cough*中被加载。这是由于同时连接数的限制所致。因此,一些人将它们放在关闭html标签之前。您可以使用库异步加载javascript以避免此阻塞。

如果您正在使用库或在执行代码之前检查DOM是否已加载,则放置位置并不重要。 但是,如果没有这样做,最好将其放在末尾。


我不知道谁给你点了踩,但我给你点了赞以抵消它,因为我总体上同意你的观点。 - soniiic
谢谢@soniic...对于这样一个泛泛而谈的问题,你怎么能不一般地回答呢... - JKirchartz
因此,总结前三个答案: 在 head 和 /head 中以及在 body 和 /body 中放置 JavaScript 是可以的。 我的一些代码放在 /html 之后。天啊。 - Doug Null

1

Javascript可以安全地放置在中,以使整个页面都可以使用该功能。请注意,这可能会阻止其余文档的加载,因此,如果您正在加载非常大或外部Javascript,则可能希望将它们内联加载到的末尾附近。

内联放置的Javascript将在执行时变为可用。这允许您在页面元素加载时有条件地加载JS。

Javascript应始终放置在或中,而不是在之后。


1

我同意,从未见过(也不建议)在HTML之后使用。另外,阻塞是一个问题。我经常使用的方法是在头部引用一个脚本yepnope(异步js加载器和测试工具(现已包含在modernizr中)),以及在body标签末尾加载一个小块内联js来加载bootstrap js文件。

在那个文件中,我使用另一个yepnope请求来异步加载其他所需的资源,并启动初始化方法。

我还开始将我的Google Analytics代码放在最后一个yepnope块中,这样它就是最后一个加载的东西,即使js应用程序启动后也是如此。


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