正在打开每日关注
正在打开每日关注
视频解读 Chrome HTTP 缓存分区:缓存键加入顶层站点与资源所在 frame,跨域登录页预加载子系统资源通常无法复用。
用隐藏的ifframe来嵌套这个子系统
视频围绕 Chrome 的 HTTP 缓存分区规则展开,解释资源缓存不再只按资源 URL 匹配。其示例是:登录系统与目标子系统跨域,尝试在登录页提前加载目标系统的大型 APP.js,希望跳转后直接命中缓存。
据视频引用的 Chrome 官方文档,Chrome 85 之前缓存键以资源 URL 为主;Chrome 86 后,缓存键包含顶层页面的 scheme/eTLD+1、发起资源请求的 frame 的 scheme/eTLD+1,以及资源地址。视频通过嵌套 iframe、网络日志与缓存记录说明:相同资源在不同顶层站点或不同资源 frame 上下文中通常不能共享缓存;中间嵌套 frame 不参与该键。它还介绍 eTLD+1 用于将子域名归并到可注册域名层级。
排查“预加载却未加速”时,应先确认资源是否处于相同顶层站点与相同直接 frame 上下文,并在 DevTools 网络面板、缓存日志中验证,而不是只看资源 URL 是否一致。
转写中的版本、术语与示例域名存在识别误差,且视频只讨论浏览器 HTTP 缓存的一种机制;实际性能还受响应缓存头、Service Worker、资源版本策略、预加载方式和用户网络状态影响。不能据此断言所有跨域资源都无法缓存或复用。