服务工作者正在多次请求缓存资源

Viv*_*ngh 0 service-worker progressive-web-apps sw-precache

因为我正在构建渐进式Web应用程序.我们面临服务工作者的奇怪行为.

1. Clear cache and unregister service worker
2. Go to www.example.com
3. Examine the network calls for resources (JS/CSS)
Run Code Online (Sandbox Code Playgroud)

预期结果:只有一个网络请求应该用于一个资源.

实际结果:正在为每个资源发出两个网络请求[SCREENSHOT [1]

Jef*_*ick 5

您在sw-precache获取资源以填充其缓存时所看到的内容.这与受控页面的初始请求无关.这是一个相当普遍的模型,无论你是否使用sw-precache.

(sw-precache顺便说一句,我看到你明确地对你的JS和CSS资源进行了版本控制,这很棒.你会注意到,它现在会在缓存请求中添加缓存清除标头,这意味着它们总是会违背网络而不是HTTP浏览器缓存.即将推出的4.0.0版本sw-precache,您现在可以通过master分支机构使用,它有一个新dontCacheBustUrlsMatching选项,允许您选择退出缓存,以防止您明确通过版本控制的资源文件名.使用该选项意味着sw-precache填充其缓存的附加请求将通过HTTP浏览器缓存实现,跳过网络之旅.)