Cherry-pick:从具有不同CDN上相同文件的两个URL加载缓存中的任意一个

时间:2019-03-25 15:59:31

标签: service-worker cdn progressive-web-apps

我有一个要加载bootstrap.min.js的Web应用程序

在这两个CDN上(以及其他):

https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/js/bootstrap.min.js https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js

使用这些CDN从其他应用程序缓存命中的几率相对较高。

我如何告诉浏览器检查它们是否已缓存并从浏览器缓存中加载?

服务人员可以这样做吗?

1 个答案:

答案 0 :(得分:2)

我相信存在一些隐私/安全限制,这些限制使使用JavaScript很难确定浏览器的缓存中是否存在第三方URL。

将服务人员添加到组合中将无法解决这些限制。

可以使用Fetch API创建带有mode of 'only-if-cached'Request,其行为或多或少与您描述的方式相同,但是仅在请求的{{1} }是mode。换句话说,仅当'same-origin'用于第一方URL时(而不是示例中的第三方CDN URL)。