概述`<link rel="modulepreload">` 为 ES 模块提供声明式预加载:提前获取、解析与编译,并写入文档的模块映射,缩短模块执行前的等待;与普通 `preload` 仅下载不同,`modulepreload` 会预编译并可并行预取依赖。语义与差异`modulepreload` 在获取模块后解析与编译,并将结果写入模块图;`preload` 仅下载到缓存,不解析编译[参考1,2,3]。请求模式固定为 `cors`;通过 `crossorigin` 控制凭据模式,默认同源发送凭据,跨源需 `anonymous`[参考1,2]。`as` 默认 `script`,也可用于 worker 类目标(`sharedworker`/`serviceworker`/`worklet` 等)[参考1,2]。依赖与注意部分浏览器可以自动预取可静态分析的依赖,但为保证一致性,应为关键依赖显式声明多个 `modulepreload` 链接[参考3]。落地建议为入口模块及其关键依赖加 `modulepreload`;配合 `type="module"` 执行入口。与 `preload`/`preconnect`/Speculation Rules 组合使用,避免饿死其他关键资源。参考与验证[参考1]MDN:`rel="modulepreload"` 语义与差异、CORS 与 `as` 说明:https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/rel/modulepreload[参考2]MDN:`rel=modulepreload` 与属性说明(默认 `script`、跨源行为):https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/rel/modulepreload[参考3]MDN 中文:模块预加载指南(依赖预取与浏览器差异、示例):https://mdn.org.cn/en-US/docs/Web/HTML/Attributes/rel/modulepreload[参考4]MDN 中文:预加载与推测性加载综述(与其他 hints 的关系):https://mdn.org.cn/en-US/docs/Web/Performance/Speculative_loading关键词校验关键词与 modulepreload 语义一致。

发表评论 取消回复