#javascript #service-worker #angular-service-worker
#javascript #service-worker #angular-service-worker
Вопрос:
Я добавил следующий (примерный) код в свое приложение (приложение Angular, верно для любого приложения JS), чтобы удалить кэш serviceworker:
if ('serviceWorker' in navigator) {
if ('caches' in window) {
caches.keys().then((keyList) => {
return Promise.all(keyList.map(function (key) {
return caches.delete(key);
}));
});
}
}
Но я часто получаю отчеты о сбоях со следующей ошибкой для некоторых пользователей, использующих Chrome 72 и выше для Windows:
TypeError · undefined is not a function
для функции
caches.keys
У кого-нибудь есть идеи, почему это может происходить.
Ответ №1:
Метод keys встречается только для объектов кэша.
Вы можете получить объекты кэша из cache.open
функции.
Пример использования:
caches.open(name).then(function(cache) {
cache.keys().then(function(keys) {
//Do something with keys
});
})
Комментарии:
1. Пожалуйста, проверьте developer.mozilla.org/en-US/docs/Web/API/CacheStorage /…
2. Я понимаю. Мне жаль, что я тебя неправильно понял. Возможно, вам нужно сначала открыть кэш, прежде чем получать ключи?