翼度科技»论坛 编程开发 JavaScript 查看内容

async与defer的区别

8

主题

8

帖子

24

积分

新手上路

Rank: 1

积分
24
`async` 和 `defer` 是两种不同的JavaScript特性,它们的主要区别在于它们的执行顺序和时间点。

  • `async` 意味着函数或代码块会被异步执行。当浏览器遇到带有 `async` 属性的资源时,它会立即开始下载该资源,同时继续加载页面。这样可以避免由于同步执行而导致的页面加载阻塞问题。然而,由于 `async` 并不保证具体的执行时间,所以如果在 `async` 代码中修改了 DOM(文档对象模型),可能会出现错误,特别是在依赖外部资源的场景下。
  • `defer` 则是一种用于推迟执行的特性。它允许将脚本放置到页面的最后部分,直到其他所有资源都已加载完毕。这样确保了在执行 `defer` 代码之前,页面已经完全准备好,从而减少了潜在的错误风险。特别是对于那些依赖于外部资源的第三方脚本来说,使用 `defer` 可以提高应用的稳定性。
总结来说,`async` 更适合于不需要等待页面完整加载即可运行的第三方脚本,因为它提供了更高的灵活性,但可能伴随着一定的执行时机的不确定性。而 `defer` 则是为了确保页面加载完成后才执行脚本,减少因页面未加载完全而引发的错误。


来源:https://www.cnblogs.com/ltwlh/p/18003735
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具