Skip to content

Commit 22f0c5f

Browse files
authored
调整空行与英文版本保持一致
1 parent fe2c2fa commit 22f0c5f

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

2-ui/5-loading/02-script-async-defer/article.md

+6
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
# Script 标签属性:async, defer
23

34
现代脚本中,脚本往往比 HTML 更 “重”:它们的大小通常更大,处理时间也更长。
@@ -88,6 +89,7 @@ Defer 脚本保持他们的相对顺序,就像常规脚本一样。
8889
`defer` 属性会忽略没有 `src` 属性的 `<script>` 脚本。
8990
```
9091
92+
9193
## async
9294
9395
`async` 属性意味着脚本是完全独立的:
@@ -98,6 +100,7 @@ Defer 脚本保持他们的相对顺序,就像常规脚本一样。
98100
- `DOMContentLoaded` 也可能发生在异步脚本之后(此时异步脚本可能很短或者是从 HTTP 缓存中加载的)
99101
- 其他脚本不会等待 `async` 脚本加载完成,同样 `async` 脚本也不会等待其他脚本。
100102
103+
101104
因此,如果我们有几个 `async` 脚本,它们可能按任意次序执行,总之是先加载完成的就先运行:
102105
103106
```html run height=100
@@ -124,6 +127,7 @@ Defer 脚本保持他们的相对顺序,就像常规脚本一样。
124127
<script async src="https://google-analytics.com/analytics.js"></script>
125128
```
126129

130+
127131
## 动态脚本(Dynamic scripts)
128132

129133
我们也可以使用 JavaScript 动态地添加脚本:
@@ -157,6 +161,7 @@ document.body.append(script);
157161

158162
例如,这里我们添加了两个脚本。在没有设置 `script.async=false` 时,它们执行顺序为加载优先顺序(即 `small.js` 可能先运行)。但是当设置了 `script.async=false` 后,脚本执行顺序就是它在文档中的顺序:
159163

164+
160165
```js run
161166
function loadScript(src) {
162167
let script = document.createElement('script');
@@ -170,6 +175,7 @@ loadScript("/article/script-async-defer/long.js");
170175
loadScript("/article/script-async-defer/small.js");
171176
```
172177

178+
173179
## 总结
174180

175181
`async``defer` 属性有一个共同点:它们都不会阻塞页面的渲染。因此,用户可以立即阅读并了解页面内容。

0 commit comments

Comments
 (0)