Kozack
@Kozack
Thinking about a11y

Какие есть способы временного кэширования данных на клиенте?

Задача какая:
Есть два сайта: siteA и siteB. Посетитель открывает пост на siteA. Теперь мне нужно найти связанный с ним пост на siteB. Для этого я беру siteA-post-id и через API получаю siteB-post-id. Так как связанные посты почти никогда не меняются, логично сохранить где-нибудь на клиенте пару siteA-post-id = siteB-post-id. Но проблема в том, что они, с маленькой вероятностью, но помяняться могут. Так что нужно сохранять эту пару на клиенте, но как-то её перепроверять или просто кэшировать на время.

Сейчас сохраняется в sessionStorage. Но так данные сохраняются на очень коротки срок. А я бы хотел сохранять на 5-10 дней. Единственным вариантом который я придумал, это делать записи в localStorage но с меткой времени. И при получении такий записи проверять как давно она было сделана.

Но, может есть способ полутше, о котором я не знаю. Так же было бы замеательно, если бы пользователь, удаляя кэш из меню браузера, так же удалял и мои сохраненные данные.
  • Вопрос задан
  • 64 просмотра
Пригласить эксперта
Ответы на вопрос 2
@rPman
Зачем вам связь хранить на клиенте? пусть этим сервер заморачивается, у него больше возможностей для этого.
1 запрос - 1 ответ, значит можно выдавать связанный идентификатор siteB при каждом запросе с siteA
Ответ написан
@insiderto
Попробуйте посмотреть в сторону ServiceWorkers , а точнее в API фоновой синхронизации. Возможно потребуется 2 воркера, которые как-то будут общаться через Storage Local, IndexDb или Cookie, в чем должен помочь https://github.com/zendesk/cross-storage.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы