Angular стратегия свежести извлекает данные также из кеша - PullRequest
1 голос
/ 16 апреля 2020

При Angular документирует стратегию работника службы freshness следующим образом:

свежесть оптимизирует для валюты данных, преимущественно выбирая запрошенные данные из сети. Только если время ожидания сети, согласно тайм-ауту, возвращается к кешу. Это полезно для часто меняющихся ресурсов; например, остатки на счетах.

Я реализовал эту стратегию в своем решении:

// ngsw-config.json

"dataGroups": [{
    "name": "jokes-cache",
    "urls": [ "https://icanhazdadjoke.com/" ],
    "cacheConfig": {
      "strategy": "performance",
      "maxSize": 5,
      "maxAge": "1d"
    }
  },
  {
    "name": "stocks-cache",
    "urls": [ "https://api.worldtradingdata.com/api/v1/stock" ],
    "cacheConfig": {
      "strategy": "freshness",
      "maxSize": 10,
      "maxAge": "1d",
      "timeout": "5s"
    }
  }]

Но когда я проверяю вкладку Сеть в DevTools, я вижу, что не только сетевой вызов запущен, но также доступен локальный кеш:

enter image description here

Я бы ожидал увидеть только сетевой вызов для конечной точки «сток» и нет доступа к кешу (ответ приходит раньше, чем через 5 секунд).

1 Ответ

0 голосов
/ 22 апреля 2020

Скриншот выглядит правильно. Значок шестеренки рядом со вторым запросом не означает доступ к кешу - он просто означает, что этот сетевой запрос был выполнен сервисным работником (что в данном случае является предполагаемым поведением).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...