js文件的异步加载
在面试的过程中被问到了js的异步加载有哪些方式,脑海里第一个想到的却是模块化里面的CMD和AMD,后面发现面试官想问的是以下三种:
- script标签加上async="async"属性属性,defer属性包含以下特点:
defer属性会告诉浏览器立即下载js文件,但是延迟到页面解析完成后再执行
如果脚本不会改变文档的内容,可将defer属性加入到<script>标签中,以便加快处理文档的速度
兼容所有浏览器
此方法可以确保所有设置了defer属性的脚本按顺序执行(这个有被问到) - script标签加上async="async"属性,async属性有以下要求:
async属性是HTML5新增属性,需要Chrome、FireFox、IE9+浏览器支持
async属性规定一旦脚本可用,则会异步执行
async属性仅适用于外部脚本
此方法不能保证脚本按顺序执行
他们将在onload事件之前完成 - 动态创建script标签
文章参考: JS异步加载的几种方式.