我正在我的投资组合网站上工作。它是一个 PWA,并且有一个 service worker。我正在使用服务工作者缓存索引页面和索引页面的所有必需资产。但是当我实际测试它时,缓存大小会随着每次负载而增加。经过一些实验后,我发现问题出在 Google 分析脚本上,但我不确定。但我找不到修复它的方法。我直接从谷歌分析中复制了代码。然后由于它不起作用,我尝试设置crossorigin="anonymous"
. 然后它也不起作用。
提前致谢!
我正在我的投资组合网站上工作。它是一个 PWA,并且有一个 service worker。我正在使用服务工作者缓存索引页面和索引页面的所有必需资产。但是当我实际测试它时,缓存大小会随着每次负载而增加。经过一些实验后,我发现问题出在 Google 分析脚本上,但我不确定。但我找不到修复它的方法。我直接从谷歌分析中复制了代码。然后由于它不起作用,我尝试设置crossorigin="anonymous"
. 然后它也不起作用。
提前致谢!
现在,您的服务工作者的fetch
处理程序无条件地将缓存策略应用于所有请求,无论涉及哪个服务器。
如果您想避免将该策略应用于向第三方服务器(例如 Google Analytics)发出的请求,您可以fetch
在调用event.respondWith()
. 如果您这样做,那么正常的网络行为仍然适用,并且您不会获得任何缓存。
假设您要缓存的所有资产都是从同源服务器提供的,您可以这样做:
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.
});