Как справиться с задержкой транзакций базы данных в пользовательском интерфейсе, чтобы обеспечить хороший пользовательский опыт? - PullRequest
0 голосов
/ 03 мая 2019

Я реализую социальную функцию в своем приложении для Android, и мне интересно, как обеспечить хороший пользовательский опыт.

Когда пользователь нажимает кнопку «VoteUp», я жду, когда завершится транзакция базы данных Firebase в реальном времени.Поскольку это асинхронный сетевой вызов, требуется некоторое время.

Мой фактический код обновляет пользовательский интерфейс при завершении транзакции.Но есть раздражающая задержка между взаимодействием пользователя и обновлением пользовательского интерфейса.

Должен ли я обновлять пользовательский интерфейс (вычислять и обновлять счетчики, изменять состояние кнопки) на стороне клиента, предполагая, что транзакция будет успешной?Если да, то как обрабатывать ошибки в этом сценарии?

1 Ответ

2 голосов
/ 03 мая 2019

Нет, вы не должны этого делать, потому что пользователь запутался, если он не работал. Показать какой-то индикатор выполнения. Так как сетевой запрос занимает неопределенное количество времени для выполнения, показать неопределенный progressBar. Вы могли бы, например, отобразить один внутри кнопки VoteUp и отключить его. Когда запрос закончится, просто покажите результат.

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