script标签的async和defer属性
async
和defer
均为script元素的属性
async
: 表示立即下载脚本,但不应妨碍页面中的其他操作,比如下载资源或等待加载其他脚本。不让页面等待两个脚本下载和执行,从而异步加载页面其他内容。async='async'
defer
: 表示脚本可以延迟到文档完全被解析和显示之后再执行。延迟脚本,defer='defer'
脚本等到之后再执行
相同: 只对外部脚本有效
只要不存在async
和defer
属性,浏览器都会按照script元素再页面中出现的先后顺序对它们一次进行解析。
大白话:加上async或defer之后的脚本会在html解析的异步下载脚本,但是async是下载好了就立马执行,而defer是等html执行完毕之后再执行。