#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.
Вы можете найти дополнительную информацию здесь: только в том случае, если кэшируется