美文网首页
JS异步加载

JS异步加载

作者: 嘤嘤嘤998 | 来源:发表于2019-02-11 17:24 被阅读0次
    1. defer 属性

    在<script> 元素中设置 defer 属性,等于告诉浏览器立即下载,但延迟执行。defer属性只适用于外部脚本文件

    <!DOCTYPE html>
    <html>
    <head>
        <script src="test1.js" defer="defer"></script>
        <script src="test2.js" defer="defer"></script>
    </head>
    <body>
    <!-- 这里放内容 -->
    </body>
    
    2. async 属性
    <head>
        <script src="test1.js" async></script>
        <script src="test2.js" async></script>
    </head>
    
    3.动态创建DOM方式
    //这些代码应被放置在</body>标签前(接近HTML文件底部)
    <script type="text/javascript">  
       function downloadJSAtOnload() {  
           varelement = document.createElement("script");  
           element.src = "defer.js";  
           document.body.appendChild(element);  
       }  
       if (window.addEventListener)  
          window.addEventListener("load",downloadJSAtOnload, false);  
       else if (window.attachEvent)  
          window.attachEvent("onload",downloadJSAtOnload);  
       else 
          window.onload =downloadJSAtOnload;  
    </script>  
    
    4.使用jQuery的getScript()方法
    $.getScript("outer.js",function(){//回调函数,成功获取文件后执行的函数  
          console.log("脚本加载完成")  
    });
    
    5.使用setTimeout延迟方法
    6.让JS最后加载

    把js外部引入的文件放到页面底部,来让js最后引入,从而加快页面加载速度

    async vs defer


    async属性的脚本都在它下载结束之后立刻执行,但执行顺序不能控制,先下载完的先执行

    defer属性的脚本都是在html解析完毕之后,按照原本的顺序执行

    相关文章

      网友评论

          本文标题:JS异步加载

          本文链接:https://www.haomeiwen.com/subject/vknqeqtx.html