加强有角度的ngsw服务工作者

时间:2019-07-04 08:18:51

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

我正在尝试拦截NGSW服务人员的所有请求,以检查我的所有文件是否都已缓存(并向用户显示一条消息,指出该应用已准备就绪)。

我的工作基于该帖子:https://stackoverflow.com/a/56067366/1381820

详细过程:

  1. 在src文件夹中创建两个js文件(例如“ sw-master.js”和“ sw-custom.js”)。

  2. “ sw-master.js”包含:

importScripts('./ngsw-worker.js');
importScripts('./sw-custom.js');
  1. 在项目的“ angular.json”文件中注册两个新资产:
"assets": [
  "src/assets",
  "src/manifest.json",
  "src/sw-master.js",
  "src/sw-custom.js"
],
  1. 在“ app.module.ts”中注册主脚本,而不是“ ngsw-worker.js”:
ServiceWorkerModule.register('/sw-master.js');

我的sw-custom.js看起来像这样:

console.log('Hello from sw-custom.js');

self.addEventListener('fetch', event => {
    console.log("[SW] HTTP call intercepted - " + event.request.url);
    return event.respondWith(fetch(event.request.url));
});

第一个要点:提取事件似乎只能使用一次。 要获取日志,必须反转sw-master.js文件中的脚本导入顺序。

我的问题:当http服务器日志全部返回时,控制台日志不会返回所有资产:

通过抓取事件返回日志(示例仅显示一个svg):

enter image description here

http服务器返回的日志(示例,显示大量svgs):

enter image description here

是否有增强NGSW提取事件的好方法?以及如何确定所有资产都在我的sw-custom中获取?

0 个答案:

没有答案