Практически все примеры потоков связаны с кэшем данных на стороне клиента, однако я не думаю, что смогу сделать это для большого количества моего приложения.Флюс без кэширования данных?
В системе я думаю об использовании React/Flux, у одного пользователя может быть 100 тысяч тысяч основных данных, которые мы храним (и 1 запись, вероятно, имеет не менее 75 свойств данных). Кэширование этого большого количества данных на стороне клиента кажется плохой идеей и, вероятно, делает вещи более сложными.
Если бы я не использовал Flux, у меня просто была бы ORM-система, которая может разговаривать с REST API, и в таком случае запрос, как userRepository.getById(123)
, всегда будет работать с API независимо от того, запрашивал ли я данные на последней странице. Моя идея состоит в том, чтобы иметь в магазине эти методы.
Неужели Flux считает, что если бы я должен был запрашивать данные, они всегда попадали в API и никогда не извлекали данные из экземпляра локального кеша? Могу ли я использовать Flux таким образом, что большинство запросов на поиск данных всегда попадают в API?
Проблема в том, что магазины из того, что я читаю, должны 1. испускать только одно событие, которое было изменено, и 2. что излучатель не должен передавать с ним какие-либо данные, вы должны вызвать хранилище в обратном вызове, чтобы получить данные. Если у меня есть страница, скажем, панель управления для системы управления проектами, где у меня есть 3 отдельных запроса для списка проблем, каждый из которых фильтруется по-разному. Если у меня только 1 проблема хранения, как я могу узнать, какой запрос закончен, когда и если я не кэширую данные, как мне это получить? – ryanzec
он выглядит примерно так: при первом вызове store.getIssues, если в хранилище нет данных, он инициирует запрос api и возвращает пустой результат. После того как запрос api завершится асинхронно, будет отправлено действие, и магазин обновится и испустит событие изменения. Итак, теперь исходный вызывающий абонент снова вызывает store.getIssues и на этот раз получает данные вместо пустого списка –
, вам все равно придется решать, следует ли кэшировать любые данные и как недействить этот кеш, но вы можете кэшировать некоторые данные, и если хранилище получает запрос на устаревшие данные, хранилище возвращает устаревшие данные и вызывает api для обновления (который затем отправляет действие и вызывает другое событие изменения хранилища) –