我理论上知道标签之间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。
请解释这里发生的事情,如果我错了,请纠正我。