html加载解析顺序是同步进行的,script标签一般用于加载js脚本,js是阻塞式加载和运行,也就是说解析到script标签的时候会暂停页面的解析,先执行完该script标签再继续解析页面。
html5的script标签新增了两个属性:
defer
和async
,可以让js脚本异步加载
defer:
当html解析到带defer属性的script标签时,会异步加载该js文件,而不中断html的解析,直到页面加载结束再回头解析该js文件。
async:
当html解析到带async属性的script标签时,会异步下载该js文件,而不中断html的解析,跟defer不同的是当该js文件下载完成,会立即解析该js文件,在解析过程中html文档则会暂停解析,直到该js文件解析完成之后继续解析。