"async defer"在一起使用时会做什么?

Ang*_*ker 7 javascript

我遇到了以下代码:

<script src="foo.js" async defer>
Run Code Online (Sandbox Code Playgroud)

我明白<script async...>将下载脚本,然后解析它暂停HTML解析.我也明白<script defer...>在解析所有HTML之后会下载脚本并进行解析.

<script async defer...>什么(例如异步和延迟一起使用)?

Duc*_*lan 8

如果您同时指定两者,async则优先于现代浏览器,而支持defer但不支持的旧浏览器async将回退到defer.

对于支撑台,检查caniuse.com异步延迟.


P/s:这些属性仅head在页面部分使用脚本时才有意义,如果将脚本放在body页脚中,它们就没用了.

  • `async`.要清楚,如果设置了`async`并且脚本是异步加载的,则会忽略`defer`.如果两者都存在且浏览器仅支持"defer",那么它将回退到"defer"行为. (6认同)