缓存随着每次加载而增加
Cache is building up with each load
我正在研究 my portfolio website。它是一个 PWA,并且有一个 service worker。我正在使用服务工作者缓存索引页面和索引页面的所有必需资产。但是当我实际测试它时,缓存大小会随着每次加载而增加。经过一些实验后,我发现问题出在 Google 分析脚本上,但我不确定。但我找不到修复它的方法。我直接从 Google 分析中复制了代码。然后因为它不起作用,我尝试设置 crossorigin="anonymous"
。然后它也不起作用。
提前致谢!
现在你的 service worker 的 fetch
处理程序无条件地对所有请求应用缓存策略,无论涉及哪个服务器。
如果您想避免将该策略应用于向第三方服务器发出的请求,例如 Google Analytics,您可以在调用 event.respondWith()
之前提前退出 fetch
处理程序.如果你这样做,那么正常的网络行为仍然适用,你不会得到任何缓存。
假设您要缓存的所有资产都来自同源服务器,您可以这样做:
self.addEventListener('fetch', (event) => {
const url = new URL(event.request.url);
if (url.origin !== location.origin) {
return;
}
// event.respondWith() and the caching logic goes here.
});
我正在研究 my portfolio website。它是一个 PWA,并且有一个 service worker。我正在使用服务工作者缓存索引页面和索引页面的所有必需资产。但是当我实际测试它时,缓存大小会随着每次加载而增加。经过一些实验后,我发现问题出在 Google 分析脚本上,但我不确定。但我找不到修复它的方法。我直接从 Google 分析中复制了代码。然后因为它不起作用,我尝试设置 crossorigin="anonymous"
。然后它也不起作用。
提前致谢!
现在你的 service worker 的 fetch
处理程序无条件地对所有请求应用缓存策略,无论涉及哪个服务器。
如果您想避免将该策略应用于向第三方服务器发出的请求,例如 Google Analytics,您可以在调用 event.respondWith()
之前提前退出 fetch
处理程序.如果你这样做,那么正常的网络行为仍然适用,你不会得到任何缓存。
假设您要缓存的所有资产都来自同源服务器,您可以这样做:
self.addEventListener('fetch', (event) => {
const url = new URL(event.request.url);
if (url.origin !== location.origin) {
return;
}
// event.respondWith() and the caching logic goes here.
});