What does “async defer” do when used together?
我遇到了以下代码:
1
| <script src="foo.js" async defer> |
我知道将下载该脚本,然后暂停HTML解析对其进行解析。我还了解到将下载脚本并在解析完所有HTML之后进行解析。
做什么(例如,异步和延迟一起使用)?
- 对async和defer的另一种解释是:stackoverflow.com/questions/10808109/script-tag-async-defer
- "async"和"defer"都以异步方式加载外部脚本。所以您不需要同时设置它们,除非您真的需要"异步",这在现代浏览器中具有更高的优先级。如果要在脚本加载后立即与页面交互,请使用"async"。如果脚本依赖于其他脚本,则使用"defer",并且应按正确的顺序使用它们。例如,首先是jquery(defer),其次是所有需要jquery的jquery插件。但不要将"async"设置为jquery,因为一旦加载,它将在任何不可预知的地方/时间执行。
如果你指定一precedence on both,async现代浏览器,在浏览器不支持了,deferasync想要回退到defer。
的支持表,检查caniuse.com为异步和引用他们。
P / S:论文义当使用只读属性组成部分在head脚本的页面和他们是无用的,如果你把一个body脚本。
- 那么,像chrome这样的现代浏览器,在遇到脚本时,会将其视为延迟或异步吗?
- async。要清楚,如果设置了async,并且异步加载脚本,则忽略defer。如果两者都存在并且浏览器只支持defer,那么它将返回到defer行为。