Как извлекать данные из кэша браузера?

#javascript #browser #browser-cache

#javascript #браузер #браузер-кэш

Вопрос:

Когда мы открываем определенный веб-сайт, браузер кэширует файлы, и когда в следующий раз мы открываем тот же веб-сайт — каким-то образом браузер извлекает его из кэша. Я понимаю, что .Cache каталог содержит информацию (вероятно, в зашифрованном виде). Мне нужно знать, есть ли какой-либо метод или способ, с помощью которого мы можем извлечь кэшированные файлы (с какого-либо другого веб-сайта).

введите описание изображения здесь

Например: на веб-сайте A есть кэшированные файлы X. Теперь, когда мы открываем веб-сайт B на новой вкладке, каким-то образом мы должны перечислить все файлы, которые в данный момент кэшируются в браузере.

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

Спасибо!

Ответ №1:

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

  fetch("some.json", {cache: "force-cache"})
    .then(function(response)  

Комментарии:

1. Спасибо Nikhil за быстрый ответ. Fetch API также будет извлекаться с сервера (если не найден в кэше). Мой запрос чем-то похож на Fetch API, но должен извлекаться только из кэша браузера и возвращать null или error, если не найден. Во-вторых, предполагая, что мы не знаем URL, тогда в нем должны быть перечислены все кэшированные файлы.

Ответ №2:

Если вы хотите ТОЛЬКО извлекать данные из кэша, вы можете использовать «only-if-cached» для свойства кэша в выборке:

 fetch("some.json", {cache: "only-if-cached"})
  .then(data => console.log(data))
  .catch(err => console.log(err));
  

Если в кэше нет совпадений, браузер отвечает таймаутом шлюза 504.

Вы можете найти дополнительную информацию здесь: только в том случае, если кэшируется