서비스 작업자는 유연성과 전력이 뛰어나지 만 캐시를 통제하에두고 불필요하게 커지지 않도록 많은 책임을집니다.서비스 근로자 캐시의 항목 삭제
캐시 된 항목의 수명, 즉 캐시에 있었던 시간을 확인하고 캐시 된 항목을 연령에 따라 주기적으로 제거하는 방법이 있습니까?
나는 다음과 같은 라인을 따라 뭔가 여기에 대해 생각하고 있어요 :
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