Привет всем! Ищу решения для кеша данных в приложении для ускорения загрузки приложения. Идея такова, что данные приложения при работе с ним сохраняются в кеше, а при его перезагрузке сначала берутся из кеша, а затем выполняется актуальный запрос, который подтягивает реальные данные, но вот интересуют следующие проблемы:
- хранение кеша. В данный момент в localStorage, но планируется IndexedDB - это оптималный вариант, но работа с ним не самая удобная, особенно если что-то нужно получить синхронно;
- место внедрения кеша. Можно реализовать отдельным сервисом, как HttpClient, что усложнит внедрение, если проект большой. Можно же сделать через Interceptor, что требует более детальной настройки;
- запросы с параметрами. Не все данные есть в кеше, да и запросы могут идти с разными опциями, нужно по-хорошему их все сортировать, получать хеш и хранить, но тогда проблема со страничными данными, которые могут друг друга частично или полностью перекрывать (например получить первых 30 пользователей, а другим запросом первых 15 пользователей - вторые данные содержатся в первых, но опции запросов разные);
- когда использовать кеш, а когда нет. Например, при запуске приложения нужно точно пользоваться кешем, в то время как во время работы в него нужно только сохранять.
Буду благодарен за хорошие статьи и идеи по данному вопросу.
У меня на беке Друпал. Вот он, действительно, нуждается в кешировании. И не а одном) а ангуляр нормально тащит, если бек оптимизирован. Когда я тащил все данные которые возможно, по причине, не ясности, что понадобится, иногда браузер вылетал с криком, что оперативки, дескать, ему не хватает, но когда ограничил принимаемые с бека данные, то всё забегало довольно шустро, не смотря на дефолтные настройки бека.