Доступ к заголовкам ответов кеша с помощью JavaScript - PullRequest
1 голос
/ 17 мая 2019

Я пытаюсь получить доступ к заголовку ответа "дата" из одного из моих кэшированных элементов.

Как вы можете видеть на картинке, мой запрос не возвращает правильную метку времени. Вместо этого он возвращает ноль, и я не знаю почему.

enter image description here

Вот код, который я использую:

var cachedFile = "https://www.washingtonpost.com/resizer/rgjyoeu2BaoUyNiojHCKLjN9udM=/1484x0/arc-anglerfish-washpost-prod-washpost.s3.amazonaws.com/public/EXKAUXTXXUI6TJ57ZCSDXBHOGE.jpg";
caches.open("dynamic-content").then(cache => {
  cache.match(cachedFile).then(response => {
    if(! response){
        console.log("not found");
    }else{
        var element = response.headers.get('date');
        console.log(element);
    }
  })
})

Моя цель - удалить старые кэшированные файлы. Без использования рабочего ящика или каких-либо плагинов. Если кто-то знает способ, я рад быть просветленным;)

1 Ответ

2 голосов
/ 17 мая 2019

try (ваш запрос возвращает пустые заголовки)

let cache={};

var url = "https://cors-anywhere.herokuapp.com/https://www.washingtonpost.com/resizer/rgjyoeu2BaoUyNiojHCKLjN9udM=/1484x0/arc-anglerfish-washpost-prod-washpost.s3.amazonaws.com/public/EXKAUXTXXUI6TJ57ZCSDXBHOGE.jpg";

async function load(url) {
  let c = cache[url];
  if(c) {
    console.log('Cached headers',c.res.headers);
  } else {
    let res = await fetch(url);
    c = cache[url] = {
      res,
      pic: await res.blob(),
    }
  }
  image.src=""; 
  image.src = URL.createObjectURL(c.pic);
}

function start() {
  load(url);
  btn.innerText="Load from cache";
  
}
<button id="btn" onclick="start()">Load</button><br>
<img id="image" height="150"/>
...