如何设置两个外部async
Javascript文件的加载和执行顺序?
鉴于以下内容......
<script src="framework.js" async></script> // Larger file
<script src="scripts.js" async></script> // Small file
虽然由scripts.js
文件大小导致framework.js
之前正在下载并执行scripts.js
中的第二个,但framework.js
依赖于async
。
有没有办法在保持{{1}}属性的同时指定加载和执行顺序?
答案 0 :(得分:13)
如果要保留执行顺序,则需要使用defer
。 defer
的作用是异步下载脚本,但推迟执行直到html解析完成。
<script src="framework.js" defer></script>
<script src="scripts.js" defer></script>
但是,一旦脚本数量增加,您可能希望开始创建自定义捆绑包。
您可以看到差异here
答案 1 :(得分:2)
如果你需要IE9的解决方案(不支持defer
属性),我创建了一个小的加载器脚本:
https://github.com/mudroljub/js-async-loader
简而言之,它以异步方式加载所有脚本,然后执行它们。