Какова продолжительность жизни активов, кэшированных работником службы?

Некоторые из статей, которые я прочитал, предполагают, что элементы, кэшированные работником службы (API веб-кэша), хранятся в системе навсегда. Я сталкивался со сценарием, когда некоторые из кэшированных ресурсов автоматически высвобождаются для пользователей, которые повторно посещают мой веб-сайт через долгое время (~ > 2 месяца). Я знаю по факту, что ресурсы, кэшированные с помощью HTTP-кэширования, удаляются браузером через определенное время. То же самое относится и к работнику службы?

Если это так, то как браузер решает, какой актив он должен удалить, и есть ли способ сообщить браузеру, что если он удаляет что-то из кэша, то удаляет все, что кэшируется с тем же именем кэша?

1 ответ

Кажется, что это длится вечно, пока это не так:) (т. Е. Недостаточно места для хранения) https://developers.google.com/web/ilt/pwa/caching-files-with-service-worker

Вы несете ответственность за реализацию того, как ваш скрипт (работник службы) обрабатывает обновления в кэше. Все обновления элементов в кэше должны быть явно запрошены; Элементы не истекают и должны быть удалены. Однако, если объем кэшированных данных превышает ограничение хранилища браузера, браузер начнет удалять все данные, связанные с источником, по одному источнику за раз, пока объем хранилища снова не превысит этот предел. См. Ограничения хранилища браузера и критерии выселения для получения дополнительной информации.

Если в их хранилище мало свободного места, его можно выселить: (см. Ограничения хранилища) https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Browser_storage_limits_and_eviction_criteria

Другие вопросы по тегам