По страничная загрузка Offset-Limit/Page-Size
В классическом виде хорошо работаю только на редко обновляемых данных.
Но можно использовать примерно следующие манипуляции
Чтобы исключить проблемы потерянных пользователей
1 - Надо загрузить в страничном варианте с сортировкой где новый пользователь будет либо в начале списка либо в конце (например по дате присоединения к списку друзей). Минимальные данные которые потребуются для загрузки ID, и набор дат (например дата изменения профиля, дата последнего сообщения и тд). Запустить серию запросов по загрузки самих данных. Обязательно сохранить в локальную БД или кеш.
2 - Слушать WebSocket канал (или периодический дергать REST) в который будет уведомлять о том что пользователи совершают какие либо действия (важно не получать сами данные, а регистрировать какие данные были изменены), дальше запускать серию запросов по загрузки самих данных (например добавился новый друг и нужно загрузить его профиль, написали в чат и тд), после синхронизации обновлять UI.
3 - Выводить список пользователей из БД с нужной для приложения сортировкой.
4 - При открытии приложения может пройти много времени с последнего момента загрузки данных или были проблемы с сетью, в этом случае просим сервер прислать список последних действий начиная от даты последней известной нам активности, и загружаем данные по активностям.
Используя что то похожее можно получить следующие
Плюсы:
1 - Данные не будут загружаться только если приложение их ранее не загружало (либо когда приложение удалило слишком старые данные но пользователь захотел их заново просмотреть)
2 - Возможность просмотреть чаты при плохом интернете
3 - Можно совмещать WebSocket + REST
Минусы:
1 - Сложность разработки и сопровождений серверной части (ведение журнала активности)
2 - Сложность разработки и сопровождений клиентской части (синхронизация локальной БД в соответствии с журналом)
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
В классическом виде хорошо работаю только на редко обновляемых данных.
Но можно использовать примерно следующие манипуляции
Чтобы исключить проблемы потерянных пользователей
1 - Надо загрузить в страничном варианте с сортировкой где новый пользователь будет либо в начале списка либо в конце (например по дате присоединения к списку друзей). Минимальные данные которые потребуются для загрузки ID, и набор дат (например дата изменения профиля, дата последнего сообщения и тд). Запустить серию запросов по загрузки самих данных. Обязательно сохранить в локальную БД или кеш.
2 - Слушать WebSocket канал (или периодический дергать REST) в который будет уведомлять о том что пользователи совершают какие либо действия (важно не получать сами данные, а регистрировать какие данные были изменены), дальше запускать серию запросов по загрузки самих данных (например добавился новый друг и нужно загрузить его профиль, написали в чат и тд), после синхронизации обновлять UI.
3 - Выводить список пользователей из БД с нужной для приложения сортировкой.
4 - При открытии приложения может пройти много времени с последнего момента загрузки данных или были проблемы с сетью, в этом случае просим сервер прислать список последних действий начиная от даты последней известной нам активности, и загружаем данные по активностям.
Используя что то похожее можно получить следующие
Плюсы:
1 - Данные не будут загружаться только если приложение их ранее не загружало (либо когда приложение удалило слишком старые данные но пользователь захотел их заново просмотреть)
2 - Возможность просмотреть чаты при плохом интернете
3 - Можно совмещать WebSocket + REST
Минусы:
1 - Сложность разработки и сопровождений серверной части (ведение журнала активности)
2 - Сложность разработки и сопровождений клиентской части (синхронизация локальной БД в соответствии с журналом)