Как лучше хранить данные полученные по Ajax в Angular?
Доброго времени суток.
Разрабатываю веб приложение на Angular 4, после авторизации пользователь получает от API по Ajax массив данных, например список своих статей. На данный момент, при каждом роутинге отрабатывает сервис, который по апи заново запрашивает данные с этими же статьями и по-моему это как-то не правильно, так как шанс того, что они так быстро в базе уже поменялись - минимален.
Как лучше в таком случае организовать хранение данных и периодическую их синхронизацию с базой? Как вариант, рассматриваю LocalStorage, но хотелось бы точно узнать, как это делается правильно, а не основываться на догадках.
Вообще такие проблемы решает кеширование. Но как известно в программировании есть две проблемы - инвалидация кеша и именование переменных. Чтобы правильно работать с кешем с фронтенда, бекенд должен поддерживать такие вещи как HTTP Cache (см. https://developer.mozilla.org/en-US/docs/Web/HTTP/... там есть перевод на русский, например). Уверен, что для Angular 4 есть встроенная поддержка (см. https://angular.io/guide/http#caching ) или с помощью сторонних библиотек.
У меня в приложении решено так - если данные есть в CouchDb, выдаем их, если нет - приложение лезет на сервер. это решение актуально для относительно большого объема данных, кроме того можно использовать localStorage, sessionStorage. Как уже было сказано выше, можно конечно хранить данные в сервисе, но хранение данных в памяти приложения - плохая идея.