<head> <script> // JavaScript code here </script> <title>Script in Head</title> </head> <h1>Hello, World!</h1>
执行过程:
<script>
中遇到 <head>
标签时,HTML 渲染会在脚本下载和执行时暂停。缺点:
理想用例:
2。 <script>
标签位于 <body>
<title>Script at Bottom</title> <h1>Hello, World!</h1> <script> // JavaScript code here </script>
执行过程:
<script>
末尾的<body>
标签在页面渲染后处理并执行。优点:
缺点:
理想用例:
3。 <script>
带有 async
属性的标签
<head> <script async src="script.js"></script> <title>Script with Async</title> </head> <h1>Hello, World!</h1>
执行过程:
async
脚本时,它会在继续 HTML 加载的同时同时下载该脚本。优点:
缺点:
async
脚本,脚本可能会以不可预测的顺序执行。理想用例:
4。 <script>
带有 defer
属性的标签
<head> <script> // JavaScript code here </script> <title>Script in Head</title> </head> <h1>Hello, World!</h1>
执行过程:
defer
脚本与 HTML 同时下载,但仅在解析整个 HTML 后才执行。DOMContentLoaded
事件之前。优点:
defer
脚本,则保持脚本执行顺序。理想用例:
比较表
<表> <标题>Method | Execution Time | Blocks Rendering | Best Use Case |
---|---|---|---|
<script> in <head> |
Before HTML load | Yes | Configuration, early execution logic |
<script> at end of <body> |
After HTML load | No | DOM manipulation, event handling |
<script async> |
When script is downloaded | No (except during execution) | Analytics, ads, independent scripts |
<script defer> |
After HTML parse | No | DOM-dependent scripts |
<脚本延迟>
<script>
<body>
<script async>
末尾使用 <body>
将 <head>
如果没有使用任何属性,请将脚本放在 async
的底部,以实现页面平滑加载。defer
的 <script>
中,除非绝对有必要防止渲染阻塞。
以上是在 HTML 中使用