SCRIPT标签应根据功能和性能需求选择位置。推荐将大多数脚本置于body底部以确保dom加载完成并避免阻塞渲染,如操作DOM的main.js;对于需提前执行的脚本,可放在head中,尤其适用于使用defer属性的模块化脚本或异步加载的第三方代码;通过async实现独立脚本异步执行,defer实现延迟有序执行,提升性能;内联脚本若操作DOM须确保执行时机。关键在于判断脚本是否依赖DOM及是否需阻塞渲染,合理布局可兼顾功能与性能。

在html文档中,SCRIPT标签的放置位置应根据脚本的功能和性能需求来决定。最规范的做法是:将大多数javaScript脚本放在页面底部,即在</body>标签之前,而某些特殊用途的脚本可以放在<head>中。
1. 放在body底部(推荐多数情况)
将SCRIPT标签放在</body>之前是最常见的最佳实践,原因如下:
示例:
<body> <h1>页面内容</h1> <p>一段文字</p> <script src="main.js"></script> </body>
2. 放在head中(特定场景)
某些脚本需要尽早加载或影响页面初始化行为,适合放在<head>中:
示例:
3. 使用async和defer优化加载
通过属性控制脚本加载行为,能进一步提升性能:
立即学习“前端免费学习笔记(深入)”;
- async:异步下载并立即执行,适用于独立脚本(如广告、分析)
- defer:延迟执行,在文档解析完成后、DOMContentLoaded前按顺序执行,适合依赖DOM的脚本
带async或defer的脚本可安全放在<head>中。
4. 内联脚本的位置建议
少量内联脚本(如数据初始化)可放在<head>中,但大量逻辑代码仍推荐外链并置于body底部。
若内联脚本操作DOM,必须确保其出现在相关HTML之后,或使用事件监听等待页面加载。
基本上就这些。关键在于理解脚本是否依赖DOM,以及是否希望它阻塞页面渲染。合理使用位置和属性,就能兼顾功能与性能。