サービスワーカーは、柔軟性とパワーが非常に優れていますが、キャッシュを管理下に置いて、不必要に大きくならないようにしなければなりません。年齢に基づいてサービスワーカーキャッシュのエントリを削除する
キャッシュされたアイテムの経過時間、つまりキャッシュに格納されていた時間、およびキャッシュされたアイテムを年齢に基づいて定期的に消去する方法はありますか?
私は、次の線に沿って何かについてここで考えている:
const RUNTIME = 'runtime-cache';
var getAgeOf = function (request) {
return (*time since request was cached*); // <-- but HOW?
};
var purgeRuntimeCache = function (threshold) {
caches.open(RUNTIME).then(function (cache) {
cache.keys().then(function (keys) {
keys.forEach(function (request, index, array) {
cache.match(request).then(function (response) {
if (getAgeOf(request) > threshold) {
console.log('delete old resource from runtime cache: ' + request.url);
cache.delete(request);
}
});
});
});
});
};
@RobertRowntreeいくつかの有用なポインターを与えるおかげで。上記の私のコードスニペット(最内層)で 'response.headers ['date']'を使ってみましたが、 'undefined'を取得しました...何か間違っていますか? – drmrbrewer
@RobertRowntreeこれは不透明なレスポンスでも問題になります。ヘッダーを照会して関連する日付を調べることはできません。カスタムの「キャッシュに入れる」日付を別々に保存する必要がありますか? – drmrbrewer