在HTML文档中嵌入JavaScript时,在哪里放置<script>标记和包含的JavaScript?我似乎记得,你不应该把这些放在<head>部分,但放在<body>部分的开头也是不好的,因为JavaScript必须在页面完全呈现之前进行解析(或类似的)。这似乎将<body>部分的结尾作为<script>标记的逻辑位置。

那么,哪里是放置<script>标记的正确位置?

(这个问题引用了这个问题,其中建议将JavaScript函数调用从<a>标记移动到<script>标记。我专门使用jQuery,但更一般的答案也是合适的。)


当前回答

就在结束正文标记之前,如在底部放置脚本所述:

将脚本放在底部脚本造成的问题是它们阻止并行下载。HTTP/1.1规范建议浏览器每个主机名并行下载的组件不超过两个。如果您从多个主机名提供图像,您可以同时获得两次以上的下载。然而,当下载脚本时,浏览器不会启动任何其他下载,即使是在不同的主机名上。

其他回答

编写JavaScript代码的最佳位置是在</body>标记之后或之前的文档末尾,以先加载文档,然后执行JavaScript代码。

<script> ... your code here ... </script>
</body>

如果您在jQuery中编写,以下内容可以在头文档中,并且将在文档加载后执行:

<script>
    $(document).ready(function(){
        // Your code here...
    });
</script>

事实证明,它无处不在。

您可以使用类似jQuery的方法来延迟执行,这样它放在哪里就不重要了(除了解析过程中的小性能影响)。

最保守(也被广泛接受)的答案是“在结束标记之前的底部”,因为这样,在任何东西开始执行之前,整个DOM都将被加载。

出于各种原因,有人持不同意见,首先是有意识地开始执行页面加载事件。

在结尾包含脚本主要用于首先显示网页内容/样式的地方。

在头中包含脚本可以很早加载脚本,并且可以在加载整个网页之前使用。

如果最后输入了脚本,则只有在加载了整个样式和设计之后才进行验证,这对于快速响应的网站来说是不受欢迎的。

就在结束正文标记之前,如在底部放置脚本所述:

将脚本放在底部脚本造成的问题是它们阻止并行下载。HTTP/1.1规范建议浏览器每个主机名并行下载的组件不超过两个。如果您从多个主机名提供图像,您可以同时获得两次以上的下载。然而,当下载脚本时,浏览器不会启动任何其他下载,即使是在不同的主机名上。