【面试】23_async 和 defer

同步带来的阻塞弊端

当浏览器加载 HTML 的时候一旦遇到了 script 标签,就会停下来把 script 标签里面的代码执行掉,如果 script 标签里面有外部资源,那就必须等待下载和执行,如果网络差,整个网页的加载都会受到影响

async

async 可以异步加载 JS,可能页面还没加载完就执行了,也有可能页面加载
完毕后执行,如果脚本有操作 DOM 的话就有可能出错,因此 async 比较适合一些第三方的脚本

defer

defer 也是异步加载,但是不管脚本是否加载完了,都会等浏览器解析 HTML 以后再执行脚本,因此 defer 比较适合与 DOM 有关联的脚本

注意点

两者只适用于外部脚本,如果浏览器不能识别这两个属性还是把 script 放在页面底部比较好

猜你喜欢

转载自blog.csdn.net/dangpugui/article/details/114905800