<script> defer 和 async 有什么区别?

50 阅读1分钟

区别

image.png

  • 无:HTML暂停解析,下载JS,再继续解析HTML
  • defer:HTML继续解析,并行下载JS,HTML解析完再执行JS
  • async:HTML继续解析,并行下载JS,执行JS,再解析HTML

注意:JS是单线程的,所以解析HTML和执行JS是不能同时进行的

prefetch和dns-prefetch有什么区别?

preload和prefetch

  • preload资源在当前页面使用,会优先加载
  • prefetch资源在未来页面使用,空闲时加载

image.png

dns-prefetch 和 preconnect

  • dns-prefetch即DNS预查询
  • preconnect即DNS预连接

image.png

答案

  • prefetch是资源预获取(和preload相关)
  • dns-prefetch是DNS预查询(和preconnect相关)