给定一个JSON API端点
服务器已配置允许缓存,并在头部响应中回复
使用情况是这样的:我们的单页应用程序中的Javascript始终会使用XHR请求配置端点(AngularJS resolve),但是我们的脚本非常大且需要很长时间来解析,因此JSON配置将在解析完成后才被请求。预取将允许我们利用部分解析时间来获取并缓存API端点的响应,否则这些响应将必须等待脚本加载。
/api/config
,我们试图在HTML文档的head中使用<link rel="prefetch" href="/api/config">
。当Chrome命中HTML中的链接标签时,它会像预期一样下载数据,但大约一秒钟后,它会通过XHR从我们的脚本再次请求数据。服务器已配置允许缓存,并在头部响应中回复
Cache-Control: "max-age=3600, must-revalidate"
。当Chrome再次请求数据时,服务器会正确地响应304 Not Modified状态。使用情况是这样的:我们的单页应用程序中的Javascript始终会使用XHR请求配置端点(AngularJS resolve),但是我们的脚本非常大且需要很长时间来解析,因此JSON配置将在解析完成后才被请求。预取将允许我们利用部分解析时间来获取并缓存API端点的响应,否则这些响应将必须等待脚本加载。
找到了“https://localhost/api/config”的预加载,但由于请求凭据模式不匹配,因此未使用。请考虑查看crossorigin属性。
我通过使用crossorigin="anonymous"
解决了这个问题。 - Indiana Kernick