Обработка состояния проводки в клиенте - PullRequest
0 голосов
/ 04 сентября 2018

Это более общий вопрос о том, как спроектировать / реализовать операцию POST в клиентском приложении, особенно если это мобильное приложение.

Что бы вы ни делали POST на сервере, например, сообщение в блоге, если вы создаете блог, сообщение в чате, если приложение чата, твит, если Twitter, вы хотите знать, прошла ли операция успешно или нет.

Давайте рассмотрим пример из твиттера.

Ниже приведены основные требования:

  1. Когда вы публикуете твит, он отображается как состояние sending на временной шкале до завершения операции. Наиболее распространенный способ отображения в виде представления - размытие твита.
  2. Как только операция прошла успешно, скажем, твит создан и виден всем подписчикам, твит становится сплошным и дает пользователю знать, что твит активен.
  3. Если операция не удалась, твит отображается с красной пометкой ! и сообщает пользователю, что этот твит не был опубликован, и он может повторить его позже.

Это легко сделать, имея 3 разных состояния: POSTING & SUCCESS & FAIL и переключаться назад и вперед, проверяя код состояния с сервера.

Мой вопрос: как мы можем справиться со случаем, когда пользователь закрыл приложение (в фоновом режиме) сразу после твита? В наивной реализации мы не сможем получить код состояния с сервера и продолжать иметь состояние POSTING.

Существуют ли передовые практики, чтобы сделать это простым в обращении?

1 Ответ

0 голосов
/ 04 сентября 2018

Есть несколько вещей, которые вы можете сделать:

1) Отправьте push-уведомление о завершении сообщения. Это разбудит приемник и позволит вам обновить статус.

OR

2) Когда ваше приложение запущено, запросите у сервера эти элементы в состоянии POSTING и посмотрите, завершены они или нет.

Они на самом деле не являются взаимоисключающими, так как 2 будет отказоустойчивым для push-сообщения, которое каким-то образом потеряно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...