script 标签上的defer="defer" 有什么用
时间: 2024-04-06 18:30:41 浏览: 88
`defer="defer"` 是用来延迟脚本的执行,直到文档解析完成才会执行脚本。这样可以避免脚本在文档还未解析完成时就开始执行,可能会导致的问题。当浏览器遇到这个属性时,它会异步下载脚本,并在下载完成后延迟执行脚本。这样可以提高页面的加载性能和用户体验。需要注意的是,`defer` 属性只适用于外部脚本,而不是内嵌脚本。
相关问题
script defer="defer"
`defer` 是一个 HTML 标签属性,用于告诉浏览器该脚本文件可以延迟执行,即在 HTML 文档解析完成后再执行,而不会阻塞 HTML 解析。
当浏览器遇到带有 `defer` 属性的 `<script>` 标签时,会在 HTML 解析过程中并行下载该脚本文件,但是不会阻塞 HTML 的解析和渲染过程。当 HTML 解析完成后,再按照顺序执行所有带有 `defer` 属性的脚本文件。同时,延迟执行的脚本文件也会在 DOMContentLoaded 事件触发前执行,这意味着它们可以访问和操作 DOM。
使用 `defer` 属性可以加快网页的加载速度,提高用户体验。但需要注意的是,`defer` 属性只适用于外部脚本文件,不适用于内联脚本(即在 HTML 中直接写入的脚本)。
示例代码:
```
<script src="example.js" defer="defer"></script>
```
在这个例子中,浏览器会异步下载 `example.js` 脚本文件,但是不会立即执行它。而是等到 HTML 解析完成后再执行。
script标签中defer和async
defer和async都是script标签中的属性,用于控制脚本的加载和执行。
defer属性表示延迟执行脚本,即在HTML文档解析完成后再执行脚本。defer属性只对外部脚本有效,内部脚本会忽略该属性。如果有多个defer脚本,它们会按照在HTML文档中的顺序依次执行。
async属性表示异步执行脚本,即在HTML文档解析过程中,脚本会被异步加载并执行,不会阻塞HTML文档的解析。如果有多个async脚本,它们会在加载完成后立即执行,执行顺序不确定。
总的来说,defer适用于需要按照顺序执行的脚本,而async适用于不需要按照顺序执行的脚本。
阅读全文