Я использую Cache Storage для создания прогрессивного веб-приложения (PWA). В мой кеш есть пользовательский объект, который мне нужен put, но кеш принимает объекты Response в качестве аргумента. Поэтому мой вопрос заключается в том, как правильно создать объект Response, в котором есть JSON. Я знаю, что могу использовать другие стратегии кэширования (localStorage или IndexedDB), но мне особенно интересно это дело - сохранение пользовательского JSON в кеше в качестве запроса.Fetch API - создать ответ с пользовательским JSON в нем
var myJSON = JSON.stringify({custom:"object"});
caches.open('cache-name').then(function (cache) {
var response = new Response(); //My JSON should go into this Response obj.
return cache.put('cache-name', response);
});
Cache Storage предназначено для использования в сервисных работников. Ваш сотрудник службы перехватит запрос на выборку, найдет совпадение в кеше и вернет совпадение, если оно будет найдено. Поэтому кэш берет объект «Response». Ваш вопрос, похоже, пытается использовать кеш в качестве хранилища общего назначения. Это правда? Если это так, не используйте Cache Storage. В противном случае, если кеш действительно предназначен для рабочего, ваш ответ JSON должен быть в файле (тот, который запросит клиент), и этот файл должен быть добавлен в кеш при установке рабочего. – tony19
Привет, спасибо за ответ. Я как бы пытаюсь использовать его как хранилище общего назначения - моя идея - изменить JSON и поместить его в магазин. Если у пользователя нет подключения к Интернету, рабочий службы вернет измененный JSON из хранилища, и приложение будет отображать с помощью этого модифицированного JSON. пока я использую localStorage, чтобы сохранить модификацию и онлайн-первую стратегию кэширования с рабочим сервисом, и она отлично работает. Но я начал задаваться вопросом, как можно использовать кеши в качестве общего хранилища для модифицированных URL-адресов. –