文档中关于 async 属性的说明是:“设置此 bool 属性以指示浏览器应在可能的情况下异步执行脚本。”我认为即使没有这个标签,所有外部脚本也会异步执行。我错了吗?
如果我声明了多个外部脚本,它们是同时下载还是逐个下载?他们将以什么顺序被执行?
<script type="text/javascript" src="js/1.js"></script> <script type="text/javascript" src="js/2.js"></script> <script type="text/javascript" src="js/3.js"></script>
最佳答案
是的。默认情况下,脚本是阻塞的。 HTML 解析将停止,直到脚本执行完毕(请注意,脚本发出的某些函数调用可能会异步处理,并且这些函数调用不会阻止进一步渲染)。
如果情况并非如此,那么:
<script src="foo.js"></script>
<p>Hello
和
document.write("foo!");
可能会在 Hello
之后将 foo!
插入到 HTML 中,因为在执行之前下载脚本需要一些时间。
关于html - <script> 的 "async"属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18702287/