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>