解决脚本阻塞问题
async和defer
在script
标签种使用async
属性时,脚本不会阻塞页面渲染,而是直接下载执行。但是脚本的加载运行次序无法控制。
当页面的脚本之间相互独立,且不依赖本页面的其他任何脚本时,async
是最理想的。
<script async src="js/vendor/jquery.js"></script>
<script async src="js/script2.js"></script>
<script async src="js/script3.js"></script>
三者的调用顺序不确定。
使用defer
属性,脚本将按照在页面中出现的顺序加载运行:
<script defer src="js/vendor/jquery.js"></script>
<script defer src="js/script2.js"></script>
<script defer src="js/script3.js"></script>
脚本调用策略小结:
- 如果脚本无需等待页面解析,且无依赖独立运行,那么应使用
async
。 - 如果脚本需要等待页面解析,且依赖于其他脚本,调用这些脚本时应使用
defer
,将关联的脚本按所需顺序置于 HTML 中。
- 本文链接:https://archer-lan.github.io/2023/11/20/%E8%A7%A3%E5%86%B3%E8%84%9A%E6%9C%AC%E9%98%BB%E5%A1%9E%E9%97%AE%E9%A2%98/
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。