- 动态创建
<script>
标签,并设置 src 属性为需要加载的脚本 URL - 使用 XMLHttpRequest 对象或 Fetch API 发送异步请求,并在请求成功后将响应文本解析为 JavaScript 代码,然后使用 eval() 函数或 Function() 构造函数来执行脚本。
- 使用 async 标签,不保证加载顺序,加载完就执行
- 使用 defer 标签,按照顺序执行】
异步加载的优势:
- 提高页面的加载速度和响应性能,避免因 JS 阻塞而造成页面卡顿的情况,从而让页面更快的渲染出来。比如埋点 sdk 完全可以在页面完全出现后,再渲染。
- 可以动态控制 JS 脚本的加载与卸载,比如有的页面需要定位,则加载第三方地图的 JS 文件,不需要的则不加载。