服务人员"安装"事件再次下载文件应该已存在于浏览器缓存中

时间:2018-03-14 09:23:51

标签: caching browser-cache service-worker service-worker-events

在添加服务工作者并缓存app-shell之前,浏览器会缓存与网页相关的文件的传出请求(例如main.css,app.js,shims.js ..)。因此,对这些文件的任何进一步请求都返回缓存版本(如果max-age已过期,则使用Etag验证这些请求),其中包括具有时间戳的请求。 (在页面的正常访问期间,此行为仍然相同。)

现在,网页(PWA)首次请求内容。收到内容后,服务工作者安装事件开始在后台获取指定的文件:

var urlsToCache = [
  "/",
  "/css/main.css",
  "/js/app.js",
  "/js/shims.js",
  "/assets/playstore.png",
  "/assets/logo_amcs_small.png",
  "/assets/appstore.png",
  "/assets/i18n/en.json",
  "/assets/i18n/de.json",
  "/fonts/fontawesome-webfont.woff2?v=4.7.0"
];

其中一些是从浏览器缓存(磁盘/内存缓存)中获取的,但有些是再次下载的(de.json,en.json,app.js,shims.js,main.css),请参阅attacehd图片。所有这些URI都包含从网页执行请求时的时间戳,但仍会在进一步请求时从浏览器缓存中返回。

为什么在"安装"中提取这些文件时会有所不同?服务工作者的事件?

network requests on first load of the PWA - service worker installs without anything in the cache

是的,我试图减少整体网络请求,因此再次下载这些文件并不是很好..

0 个答案:

没有答案