готов, все по ресту). Данные используются в двух разных местах.
Пока что как я думаю делать:
Беру и делаю репозиторий как обертку вокруг массива своих моделей данных. Далее при прорисовке компонента смотрю на свойство dataWasLoaded, если там false, а при первом посещении компонента оно так будет, загружаю данные через сервис в репозиторий, далее использую репозиторий там где мне нужно и не будут каждый раз загружаться данные (только после add/remove/update просто делать ту же операцию над репозиторием).
Вижу только 1 минус: CRUD не синхронизируются между несколькими клиентами, но это мне в общем не очень то и важно.
Херня или вполне жизнеспособно?
Хотя кстати этот минус вполне так тоже можно убрать с помощью запроса на время последнего изменения
Стандартное кеширование, проблема только, как вы и сказали, в том, что данные не будут синхронизироваться между клиентами без сокета, но если для вас это не проблема, то все ок Есть еще одна проблема - вы хотите вручную актуализировать данные при выполнении операции над ними, это нормальная практика, но вы берете на себя ответственность по актуализации данных. До тех пор, пока у вас просто один круд, все легко, но зайдите, к примеру на YouTrack, попробуйте поудалять проекты, борды и другие сущности и посмотрите, как на это реагируют списки этих сущностей в приложении Там нормальная ситуация, что вы удаляете сущность, но в списке она по-прежнему отображается из-за того, что кто-то просто забыл актуализировать данные. Пользоваться этим, конечно, очень больно и часто приходится перезагружать страницу
Обсуждают сегодня