Как условно кэшировать бюст API в рабочей панели - PullRequest
1 голос
/ 10 июля 2020

Подробная информация о моей цели.

У меня есть плагин webpack workbox, настроенный для кеширования API на 30 секунд. Я хотел бы принудительно заблокировать кеш-память, когда срабатывает другой запрос API.

Пример, ниже config caches feature-flags. Я пытаюсь кешировать его, когда страница отправляет запрос на «updateTests».

конфигурация рабочего окна для кеширования флага функции workbox configuration to cache feature-flag Workbox configuration updated to clear feature-flags Workbox configuration updated to clear feature-flags Cache clear makes it work введите описание изображения здесь

Вещи, которые я пробовал

  • При удалении IndexedDB вручную выполняется бесплатная sh выборка флагов функций

1 Ответ

2 голосов
/ 10 июля 2020

Просто чтобы убедиться, что я понимаю:

  • У вас есть вызовы API, которые включают feature-flags в свой URL, и вы хотите, чтобы все эти вызовы обслуживались в первую очередь из кеша кеша с именем api с максимальным временем жизни 30 секунд.

  • Если в какой-то момент браузер делает запрос URL-адреса, содержащего updateFlags, это должно служить своего рода «выключателя уничтожения», который автоматически очищает содержимое кеш-памяти api, гарантируя, что следующий запрос feature-flags всегда будет go против сети.

Предполагая, что это Чтобы получить точную сводку, вы можете добавить в конфигурацию новый маршрут runtimeCaching, который выполняет следующие действия:

runtimeCaching: [{
  // existing route
}, {
  urlPattern: new RegExp('updateFlags'),
  handler: async ({request, event}) => {
    // Deleting the 'api' cache will ensure that the next API
    // request goes against the network.
    event.waitUntil(caches.delete('api'));

    // Assuming that you want the actual request for the URL
    // containing updateFlags to be made against the server:
    return fetch(request);
  },
}]
...