Угловой сервис-работник. Кеширование полученных данных - PullRequest
0 голосов
/ 08 октября 2019

Я хочу кешировать полученный веб-сокет JSON. Когда я получаю данные, я сохраняю их в объекте и хочу их кэшировать. Я не могу найти информацию об этом нигде. Как мне это сделать?

Я пытался указать URL-адрес веб-сокета, но кэширования не было.

{
  "$schema": "./node_modules/@angular/service-worker/config/schema.json",
  "index": "/index.html",
  "assetGroups": [
    {
      "name": "app",
      "installMode": "prefetch",
      "resources": {
        "files": [
          "/favicon.ico",
          "/index.html",
          "/manifest.webmanifest",
          "/*.css",
          "/*.js"
        ]
      }
    },
     {
      "name": "assets",
      "installMode": "lazy",
      "updateMode": "prefetch",
      "resources": {
        "files": [
          "/assets/**",
          "/app/app.component.ts",
          "/*.(eot|svg|cur|jpg|png|webp|gif|otf|ttf|woff|woff2|ani)"
        ]
      }
    }
  ],
    "dataGroups": [{
      "name": "api-freshness",
      "urls": ["wss://blablabla.ru/ws/"],
      "cacheConfig": {
        "strategy": "freshness",
        "maxSize": 100,
        "maxAge": "3d",
        "timeout": "5s"
      }
    }
  ]
}

1 Ответ

0 голосов
/ 08 октября 2019

Я предполагаю, что вы активировали функциональность PWA, выполнив команду ng add @ angular / pwa и что приведенное выше содержимое взято из файла ngsw-config.json, который следует поместить в вашу папку src.

Попробуйте добавить символы подстановки к значению URL в группах данных, чтобы оно выглядело следующим образом:

"urls": ["wss://blablabla.ru/ws/**"]
...