本文详解为何 “ 无法被后续 `fetch()` 请求复用,并提供符合规范的配置方案:统一跨域策略、移除冗余凭证参数、确保 dom 位置正确,从而真正启用浏览器预加载缓存。
在 Web 性能优化中, 是提升关键资源加载速度的重要手段。但当为 JSON 文件预加载时,若 fetch() 请求未能复用预加载资源,浏览器会抛出典型警告:
“The resource … was preloaded using link preload but not used within a few seconds…”“…not used because the request credentials mode does not match.”
这类问题根本原因在于 crossorigin 属性与 fetch() 的 credentials/mode 选项不匹配,导致浏览器将预加载与实际请求视为两个独立的、不可共享缓存的请求。
✅ 正确配置:保持跨域语义一致
对于静态 JSON 文件(无 Cookie 依赖、无需服务端鉴权),不应启用凭据(credentials)。此时应采用最轻量、兼容性最佳的配置: