博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript defer与async 的差异
阅读量:4096 次
发布时间:2019-05-25

本文共 567 字,大约阅读时间需要 1 分钟。

JavaScript 高级程序设计中说:只要代码中不存在 defer 和 async 属性,浏览器都会按照

defer 延迟执行

使用这个属性,脚本会被延迟到整个页面都接续完毕后再运行,相当于告诉浏览区立即下载,但延迟执行。

在这里插入图片描述虽然这个例子中

注意:

(1)延迟脚本不一定会按照顺序执行,也不一定在 DOMContentLoaded 事件前执行,所以最好只包含一个延迟脚本;
(2)defer 属性只适用于外部脚本文件

async 异步脚本

这个属性与 defer 类似,也用于改变处理脚本的行为。但不同的是,标记为 async 的脚本并不保证按照指定他们的先后顺序执行。

在这里插入图片描述以上代码,第二个脚本文件可能会在第一个脚本文件之前执行,因此要确保两者之间互不依赖非常重要。指定 async 属性的目的是不让页面等待两个焦恩下载和执行,从而异步加载页面其他内容。建议异步脚本不要在加载期间修改 DOM。

异步脚本一定会在页面的 load 事件前执行,但可能会在 DOMCintentLoaded 事件触发之前或之后执行。

总结

  • 使用 defer 属性可以让脚本在文档完全呈现之后再执行。延迟脚本总是按照指定它们的顺序执行
  • 使用 async 属性可以表示当前脚本不必等待其他脚本,也不必阻塞文档呈现。但是不能保证异步脚本按照在页面中出现的顺序执行

转载地址:http://eovii.baihongyu.com/

你可能感兴趣的文章
程序员用 AI 修复百年前的老北京视频后,火了!
查看>>
漫话:为什么你下载小电影的时候进度总是卡在 99% 就不动了?
查看>>
我去!原来大神都是这样玩转「多线程与高并发」的...
查看>>
当你无聊时,可以玩玩 GitHub 上这个开源项目...
查看>>
B 站爆红的数学视频,竟是用这个 Python 开源项目做的!
查看>>
安利 10 个让你爽到爆的 IDEA 必备插件!
查看>>
自学编程的八大误区!克服它!
查看>>
GitHub 上的一个开源项目,可快速生成一款属于自己的手写字体!
查看>>
早知道这些免费 API,我就可以不用到处爬数据了!
查看>>
Java各种集合类的合并(数组、List、Set、Map)
查看>>
JS中各种数组遍历方式的性能对比
查看>>
Mysql复制表以及复制数据库
查看>>
进程管理(一)
查看>>
linux 内核—进程的地址空间(1)
查看>>
存储器管理(二)
查看>>
开局一张图,学一学项目管理神器Maven!
查看>>
修改现有消息类让.net core项目支持Protobuf - 【无需使用 [ProtoBuf.ProtoContract] 的方法】
查看>>
B-Tree 和 B+Tree 结构及应用,InnoDB 引擎, MyISAM 引擎
查看>>
Linux 高压缩率工具 XZ 压缩详解
查看>>
同步锁——ReentrantLock
查看>>