红宝书第四版出来后,我也是花了很多时间去看。对于延迟脚本,自己也是做了一个实验,写下了这篇总结
什么是延迟脚本?...,我发现defer永远都是最后下载的)
image.png
async和defer两种模式,区别在于:
async是告诉浏览器,它不会操作dom,可以不必等到它下载解析完后再加载页面,也不用等它执行完后再执行其他脚本...script标签内容的解析和页面渲染
他们都会在浏览器load事件前执行,但是不保证是在DomContentLoad事件前还是后执行
defer肯定在async后面执行,从我的实验结果和书上对它们对解析来看...影响多个异步脚本的执行顺序因素
脚本文件大小
网络传输因素
特殊情况
当所有的脚本文件都很小很小的时候,结果会在很大概率稳定在
image.png
使用的注意点
异步推迟脚本的执行顺序并不稳定,所有尽量只有一个...使用异步推迟脚本时,应该考虑什么场景才使用,而不是滥用它
写在最后
纸上得来终觉浅,欲知此事要躬行,我写得也不一定对,如果你有问题或者更好的答案可以在下面参与讨论,我始终认为有争议和反对的声音是好事