script defer="defer"
时间: 2023-07-03 09:32:27 浏览: 51
`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="defer" 有什么用
`defer="defer"` 是用来延迟脚本的执行,直到文档解析完成才会执行脚本。这样可以避免脚本在文档还未解析完成时就开始执行,可能会导致的问题。当浏览器遇到这个属性时,它会异步下载脚本,并在下载完成后延迟执行脚本。这样可以提高页面的加载性能和用户体验。需要注意的是,`defer` 属性只适用于外部脚本,而不是内嵌脚本。
script defer
如果使用defer属性,JS文件会在文档解析后再执行,而不是立即执行。如果使用async属性,则JS文件会在下载完成后立即执行,不会等待文档解析完成。
使用defer属性可以保证JS文件的执行在servlet之后,而使用async属性则无法保证执行顺序。
下面是使用defer属性的示例代码:
```html
<!DOCTYPE html>
<html>
<head>
<title>Your Title</title>
<script src="your-script.js" defer></script>
</head>
<body>
<h1>Hello World!</h1>
<script>
// your JS code here
</script>
</body>
</html>
```
在这个示例代码中,先加载了your-script.js文件,但是该文件会在文档解析完成后再执行。而在JS代码中的逻辑会在文档解析完成后立即执行。这样就保证了JS先执行,然后Servlet再执行的顺序。