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

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

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


当前回答

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

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

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

其他回答

雅虎推广的标准建议!卓越性能团队,将<script>标记放在文档的<body>元素的末尾,这样它们就不会阻止页面的呈现。

但有一些新的方法可以提供更好的性能,正如我在另一个关于Google Analytics JavaScript文件加载时间的回答中所描述的:

Steve Souders(客户端性能专家)的一些精彩幻灯片介绍了:并行加载外部JavaScript文件的不同技术它们对加载时间和页面呈现的影响浏览器显示什么样的“正在进行”指示符(例如状态栏中的“加载”、沙漏鼠标光标)。

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

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

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

如果您仍然非常关心Internet Explorer版本10之前的支持和性能,那么最好始终将脚本标记设置为HTML正文的最后一个标记。这样,您就可以确定DOM的其余部分已经加载,并且不会阻塞和渲染。如果您不太关心版本10之前的Internet Explorer,您可能希望将脚本放在文档的开头,并使用defer来确保它们仅在加载DOM后运行(<script type=“text/javascript”src=“path/to/script1.js”defer></script>)。如果您仍然希望代码在版本10之前的Internet Explorer中运行,请不要忘记将代码包装在窗口中!

您可以通过使用围绕JavaScript代码的专用HTML标记<script>在HTML文档中添加JavaScript代码。

<script>标记可以放在HTML的<head>部分、<body>部分或</body>close标记之后,具体取决于何时加载JavaScript。

通常,JavaScript代码可以放在文档<head>部分的内部,以便将它们包含在HTML文档的主要内容之外。

但是,如果您的脚本需要在页面布局中的某一点运行(例如使用document.write生成内容时),则应该将其放在应该调用的位置,通常在<body>部分。

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

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

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

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