代码之家  ›  专栏  ›  技术社区  ›  Hamed Baziyad sagar pagare

为什么在脚本标记中设置async或defer时不能执行Javascript代码?

  •  0
  • Hamed Baziyad sagar pagare  · 技术社区  · 4 年前

    我曾经 JavaScript script tag 在里面 html 这样地:

    <script src="file.js" type="text/javascript"></script>
    

    使用上述代码, file.js async defer 脚本标记 , 文件.js 无法在以下代码中执行:

    <script src="file.js" type="text/javascript" async="async"></script>
    <script src="file.js" type="text/javascript" defer="defer"></script>
    

    你能帮帮我吗? 为什么我要面对这样的问题呢?

    另外,为了更清楚的说明,我添加了一段由文件.js加载如下:

    <!DOCTYPE html>
    <html lang="en-US">
     <head>
    
     <title>Dr.Kayvanfar</title>
     <meta charset = "UTF-8" />
     <link type="text/css" rel="stylesheet" href="Main_CSS.css" />
       
     <noscript> Your browswer don't support JS</noscript>
    
     </head>
    
    
    
     <body>
       <div id="container" style="width:1500px;margin-left:auto;margin-right:auto;color:blue;">
         <div id="header" style="height:100px;background-color:rgb(0,0,0); margin-bottom:20px;margin-top:20px; color:rgb(255,255,255);padding-top:5%">
           <span class="topheader">Future Students</span>
           <span class="topheader">Current Students</span>
           <span class="topheader">Research & Teaching</span>
           <span class="topheader">Communities</span>
           **<script src="file.js" type="text/javascript" async ></script>**
         </div>
    
         </body>
       
       </html>
    
    0 回复  |  直到 4 年前
        1
  •  1
  •   Daniel_Knights    4 年前

    应该是:

    <script src="file.js" type="text/javascript" defer></script>
    // Or
    <script src="file.js" type="text/javascript" async></script>
    // Or
    <script src="file.js" type="text/javascript" async defer></script>
    

    何时使用哪一种:

    • 如果脚本是模块化的,并且不依赖于任何脚本,那么使用async。
    • 如果脚本依赖于任何其他脚本,则使用defer。

    尽管您可以同时使用:

    如果两者都指定,异步在现代浏览器上优先,而支持defer但不支持异步的旧浏览器将回退到defer。

    Source