Как обновить полученные данные в интерфейсе, когда данные обновляются в базе данных?

0

Я создаю мобильное приложение, где жестом с выталкиванием в пользовательском интерфейсе инициируется обновление существующих данных/сообщений (также извлекается новые сообщения, если они есть, но это не так). Сервер без апатии означает, что сеансов нет.

Если сообщения были обновлены в базе данных, как я могу позволить начальнику узнать, какие сообщения необходимо обновить? Единственный способ, о котором я мог думать, - отправить список идентификаторов всех полученных сообщений на сервер и проверить, не изменилось ли какое-либо из сообщений с момента получения.

Это, однако, кажется неэффективным, поскольку пользователи, возможно, собрали сотни сообщений в некоторых экстремальных случаях, и, скорее всего, только несколько или ни одна из должностей не нуждается в обновлении. Выдача сотен запросов db может быть огромной накладной.

Теги:
rest
mobile
lamp

1 ответ

0

Есть как минимум 2 способа сделать это

  1. Длительный опрос

    • клиент запрашивает сервер для получения новой информации.
    • сервер держит соединение открытым до тех пор, пока не будут отправлены новые данные.
    • как только сервер получает данные, он отправляет это клиенту, а соединение закрывается.
    • клиент затем отправляет новый запрос информации.
    • Это непрерывный процесс.
  2. WebSockets

    • Создайте соединение с websocket, держите его открытым.
    • Сервер подталкивает любые обновления по мере их поступления.

Проблемы с обеими ситуациями

  • Может потребоваться значительное количество времени для реализации готовой продукции.
  • Оба они потребуют, чтобы сервер знал о любых изменениях в базе данных. Это тоже сложно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню