核心结论
脚本加载和资源提示的优化核心是明确依赖关系、执行时机、发现时机及真实优先级,而不是为所有资源统一添加 async、defer 或 preload。普通经典脚本通常会暂停文档解析,等待脚本下载并执行;带 defer 的经典脚本可并行下载,并在文档解析完成后按文档顺序执行,且通常早于 DOMContentLoaded;带 async 的经典脚本在下载完成后尽快执行,相互之间不保证顺序。type="module" 的模块脚本默认具有类似延迟执行的特征,并按照模块依赖图加载和求值。
底层机制
主解析器被脚本阻塞时,浏览器的预加载扫描机制仍可能发现后续资源,但发现效果受源码位置、动态