异步加载JS

JS异步加载三种方案

1. defer异步加载,但要等到dom文档全部解析完才会被执行。且只有IE可以用,也可以将代码写到内部。

1 <script type="text/javascript" defer="defer">   //在script里这样写就可以了
2       var a = 123;                  //defer异步加载可以在里面写代码
3 </script>

2. async异步加载,加载完就执行。async只能加载外部脚本,是不能将js代码写到script标签里。

1 <script type="text/javascript" async="async">
                              //不能在里面写代码,只能外部src调用
</script>

async是W3C标准规定的,兼容各大浏览器。

3. 第三种方式就是通过创建标签的方式

<script type="text/javascript">
        var script = document.createElement('script');
        script.type = "text/javascript";
        script.src = "demo.js";         //下载完
        document.head.appendChild(script);  //当插入进去script后,才会解析这个js。否则只是下载完,不会执行。
</script>
原文地址:https://www.cnblogs.com/cz976230/p/10233946.html