Это более общий вопрос о том, как спроектировать / реализовать операцию POST
в клиентском приложении, особенно если это мобильное приложение.
Что бы вы ни делали POST
на сервере, например, сообщение в блоге, если вы создаете блог, сообщение в чате, если приложение чата, твит, если Twitter, вы хотите знать, прошла ли операция успешно или нет.
Давайте рассмотрим пример из твиттера.
Ниже приведены основные требования:
- Когда вы публикуете твит, он отображается как состояние
sending
на временной шкале до завершения операции. Наиболее распространенный способ отображения в виде представления - размытие твита.
- Как только операция прошла успешно, скажем, твит создан и виден всем подписчикам, твит становится сплошным и дает пользователю знать, что твит активен.
- Если операция не удалась, твит отображается с красной пометкой
!
и сообщает пользователю, что этот твит не был опубликован, и он может повторить его позже.
Это легко сделать, имея 3 разных состояния: POSTING
& SUCCESS
& FAIL
и переключаться назад и вперед, проверяя код состояния с сервера.
Мой вопрос: как мы можем справиться со случаем, когда пользователь закрыл приложение (в фоновом режиме) сразу после твита? В наивной реализации мы не сможем получить код состояния с сервера и продолжать иметь состояние POSTING
.
Существуют ли передовые практики, чтобы сделать это простым в обращении?