Просто для пояснения - Workbox отслеживает хэш файлов в indexedDB, но не использует indexedDB для обслуживания файла.Он использует API-интерфейс Cache для хранения и извлечения файлов.
В своем вопросе вы смешиваете Cache, память и работника службы с точки зрения того, откуда приходит ответ.Итак, чтобы прояснить это немного:
- Если у вас зарегистрирован сервисный работник для страницы (т. Е. Сервисный работник контролирует страницу), то все сетевые запросы сначала будут идти к сервисному работнику.
- Сервисный работник может либо получить ответ любым способом, либо он может перейти в сеть (см. Раздел ответа сервисного работника).
- Как только он выходит в сеть, браузер можетрешить, где он получает свой ответ (см. раздел «Ответ браузера»).
Ответ работника службы
Работник службы обычно создает один из трех способов создания ответа:
- Используйте ответ от API Cache для возврата.
- Получите ответ из сети и верните его (возможно, добавив его в кэш).
- Создайте пользовательский ответ, используялюбое количество источников, включая статические строки, потоки, ответы Cache API и сетевые ответы.
Обратите внимание, что в этом списке я имею в виду Cache API.Этот ответ кэшируется веб-приложением, которое хранится на компьютерах пользователей.
Ответ браузера
Для любых сетевых ответов браузер может выполнить одно из следующих действий для получения ответа:
- Зайдите в сеть и получите новый ответ от сервера
- Ссылка на кеш HTTP возвращает ответ
Кеш HTTP отделен от кешаAPI.Это вне контроля разработчиков и на него нельзя положиться.Браузер делает то, что ему кажется лучшим.
Workbox + Service Worker
Workbox предоставляет набор утилит, облегчающих работу с компонентом «Service Worker Response» и разработку для него.Это означает, что он имеет дело только с тремя типами ответов, которые я обрисовал.
Я записал, что делает предварительное кэширование рабочей коробки и как оно работает, включая то, для чего indexedDB используется в предварительном кэшировании: https://developers.google.com/web/tools/workbox/modules/workbox-precaching