Реагирует на истечение срока действия кэша fetch () через 5 минут - PullRequest
3 голосов
/ 28 июня 2019

Может ли кто-нибудь поделиться некоторыми советами о том, как кэшировать вызов в браузере и чтобы он длился 5 минут, 30 секунд, действительно в любое время вообще?

У меня возникли некоторые реальные трудности с этим.

Это работает, но не может понять, как его истечь

fetch(
    '/get/id',
    {
        method: 'GET',
        headers: { 'Content-Type': 'application/json' },
        cache: 'force-cache'
    }
);

Это не работает вообще

fetch(
    '/get/id',
    {
        method: 'GET',
        headers: { 'Content-Type': 'application/json', 'Cache-Control': 'max-age=30' },
    }
);

1 Ответ

0 голосов
/ 09 июля 2019

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

Для этого элемента управления кэшем необходимо обновить сервер, чтобы включить в ответ элемент управления кэшем, как показано ниже, где сервер указывает тип элемента управления кэша (общедоступный) и максимальный возраст ответа для клиента. enter image description here

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

https://github.com/abhishekasana/jsDevelopCell/blob/master/cached_fetch.js

...