defer属性与async属性

defer属性

defer属性的用途是告诉浏览器立即下载脚本,但延迟到整个页面都解析完毕之后(即遇到</html>标签后)再执行。拥有defer属性的延迟脚本会按照先后顺序执行(如下,会先执行test1.js,再执行test2.js),因此前后有依赖关系的js文件可以放心使用。

<script type="text/javascript" defer="defer" src="test1.js"></script>
<script type="text/javascript" defer="defer" src="test2.js"></script>

async属性

有了async属性,浏览器会立即下载相应的脚本,在下载的过程中页面的解析不会停止,下载完成后立即执行(如下,test1.js和test2.js哪个先下载完就会先执行哪个,因此test2.js可能会在test1.js之前执行),执行过程中页面解析会停止。因此前后的js文件必须确保互不依赖。指定async的目的是不让页面等待两个脚本下载和执行,从而异步加载页面其他内容。因此,异步脚本不要在加载期间修改DOM。

<script type="text/javascript" async src="test1.js"></script>
<script type="text/javascript" async src="test2.js"></script>

defer属性与async属性只适用于外部脚本文件。两个属性都指定是为了在async不支持的时候启用defer。
最推荐的方法是把<script>写在<body>底部,不要用这两个属性~这样就没有兼容和执行顺序的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值