Вы можете динамически создавать имена кешей, которые кодируют время их создания и максимальный возраст, что-то простое, например: ${dateStr}_${maxAgeMs}
. Затем при перехвате выборки в вашем сервисном работнике вы можете просмотреть существующие кэши, используя caches.keys
, и найти тот, у которого не истек срок действия, используя только его имя и сопоставить с ним, или создать новый, если у них все просрочены и заполнены это с входящими выборками. Это также дает вам возможность удалить просроченные кэши.
Мне тоже нужно было сделать это и взглянуть на упомянутый проект рабочего ящика, похоже, они делают то же самое с хранилищем IndexedDB, но это кажется излишним для запроса.