我理论上知道标签之间async
和defer
使用的区别。<script>
async
:脚本与页面的其余部分异步执行(脚本将在页面继续解析时执行)。
defer
:当页面完成解析时执行脚本。
但无法理解他们遵循的机制。
我有以下 2 个文件 -1.js
和1.html
.
1.js
alert('Running external JS');
1.html
<html>
<body>
<script src="1.js" async></script>
<script>
for(var i=0;i<5;i++)
{
alert('HTML code1');
}
</script>
<script>
for(var i=0;i<5;i++)
{
alert('HTML code2');
}
</script>
</body>
</html>
html 文件alert
首先执行所有语句,然后最后1.js
执行脚本,即它的行为类似于我在-tag中使用defer
的地方。async
<script>
根据我的预期,外部脚本比 HTML 本身中的代码小得多,它应该在alert
我正在使用的 HTML 文档中的语句async
之间的任何地方触发,但其作用类似于 using 的效果defer
。
请解释这里发生的事情,如果我错了,请纠正我。