<script src="common.js" defer><script src="common.js" async></script>
默认情况下,浏览器是同步加载js文件,即遇到script标签就会停止渲染,等待其下载执行完毕后再继续往下渲染,如果是外联的js,还需要等待其下载的时间,如果外部文件体积过大,很容易造成浏览器的阻塞卡死,所以可以给script标签加上defer或async属性使其异步加载。
script标签defer与async的区别是:前者要等到整个页面正常渲染结束,才会执行;后者一旦下载完,渲染引擎就会中断渲染,执行这个脚本以后,再继续渲染。一句话,defer是“渲染完再执行”,async是“下载完就执行”。另外,如果有多个defer脚本,会按照它们在页面出现的顺序加载,而多个async脚本是不能保证加载顺序的。
浙公网安备 33010602011771号