HTML5脚本标记加载指令看起来很酷https://stackoverflow.com/a/24070373/1070291
是否可以异步加载一堆脚本,但有一个脚本等待执行基于异步完成的脚本。
<script src="//some.cdn/jquery.js" async></script>
<script src="//some.cdn/underscore.js" async></script>
<script src="/my-app-which-uses-_-and-jquery.js" defer></script>
我的应用程序脚本是否可以保证在我的库之后执行,还是仅按顺序与其他延迟脚本一起执行?
答案 0 :(得分:1)
当defer
存在时,它指定在页面完成解析时执行脚本。它不包含async
脚本。
如果我遇到以下情况:所有脚本都会记录执行日期:
<head>
<link rel="stylesheet" href="style.css">
<script src="script.js" async></script>
<script src="script2.js" async></script>
<script src="script3.js" defer></script>
</head>
<body>
<script>
console.log("Body script executed at : " + new Date());
</script>
</body>
我可能有这个输出:
Body script executed at : Tue Feb 17 2015 00:05:08 GMT-0300
script2.js:2 Script 2 executed at :Tue Feb 17 2015 00:05:08 GMT-0300
script.js:2 Script 1 executed at:Tue Feb 17 2015 00:05:08 GMT-0300
script3.js:2 Script 3 executed at :Tue Feb 17 2015 00:05:08 GMT-0300
script3.js (defer)
将等待<body>
&#39;,但不会等待script1.js (async)
,script2.js(async)
。
这是PLUNKER