HTML5脚本标记确实推迟等待任何以前的异步脚本

Not*_*ple 6 javascript html5

HTML5脚本标记加载指令似乎很酷/sf/answers/1684926141/

是否可以异步加载一堆脚本,但有一个脚本等待执行基于异步完成.

<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>
Run Code Online (Sandbox Code Playgroud)

我的应用程序脚本是否可以保证在我的库之后执行,还是只能按顺序执行其他延迟脚本?

nan*_*doj 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>
Run Code Online (Sandbox Code Playgroud)

我可能有这样的输出:

  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
Run Code Online (Sandbox Code Playgroud)

script3.js (defer)将等待 ' <body>',但不会等待script1.js (async), script2.js(async)

这是一个笨蛋