defer和async的区别
时间: 2024-05-28 11:11:15 浏览: 75
async与defer的区别
defer 和 async 都是用于控制 JavaScript 异步执行的关键字,它们有一些区别。
defer 用于在 HTML 文件中标记一个脚本,表示该脚本需要在页面加载完成后执行,但是在 DOMContentLoaded 事件触发前执行。defer 会按照页面中脚本出现的顺序依次执行,如果多个脚本都使用了 defer,那么它们会按照在页面中出现的顺序依次执行。defer 通常用于优化页面加载性能,因为它可以让页面先加载完毕再执行脚本,避免脚本阻塞页面加载。
async 用于在 HTML 文件中标记一个脚本,表示该脚本需要在加载完成后立即执行,但是不会阻塞页面的加载。async 也会按照页面中脚本出现的顺序依次执行,但是它们的执行顺序和 DOMContentLoaded 事件触发的顺序无关。async 通常用于不需要等待其他资源加载完成就可以立即执行的脚本,比如一些统计代码、广告代码等。
总的来说,defer 和 async 都可以优化页面加载性能,但是它们的使用场景不同。如果脚本需要操作 DOM 元素,那么建议使用 defer,否则可以考虑使用 async。
阅读全文