Как обрабатывать несколько асинхронных ошибок на одной странице? - PullRequest
2 голосов
/ 14 декабря 2009

Это не обязательно вопрос, относящийся к Flex, но я буду использовать Flex в моем примере:

Сценарий: у нас есть довольно сложное приложение MVC Flex, которое использует удаленное взаимодействие и выполняет несколько асинхронных вызовов на одной странице. Некоторые из звонков:

  • GetUserOrders
  • GetCurrentOrder
  • GetUserDetails

В случае ошибки сети или БД пользователю будет выдано три отдельных сообщения об ошибке, и для этого потребуется три щелчка «ОК». Мы рассматриваем сбор всех сообщений об ошибках в одноэлементном массиве и отображение их в виде списка в общем окне сообщений об ошибках.

Каковы лучшие практики для изящной обработки множества асинхронных ошибок на одной странице, особенно когда нам нужно предупредить пользователей о наличии ошибки?

1 Ответ

0 голосов
/ 15 декабря 2009

В случае ошибок сети или БД вы можете написать некоторый код, который их перехватывает и просто отображает сообщение о состоянии, а не серию предупреждений.

С точки зрения пользователя, если в сети или БД возникнет ошибка, они захотят узнать, когда можно будет снова щелкнуть. Если вы ожидаете, что эти ошибки возникнут только в редких ситуациях, предупреждение будет в порядке. Тем не менее, если возможно, что сеть или БД могут быть недоступны какое-то время, и поэтому они получат много этих сообщений, я бы поместил сообщение о состоянии где-нибудь, и сообщение о состоянии говорит, что сеть или БД не работает, пока не будет в состоянии успешно выполнить запрос. Я полагаю, что вы могли бы продолжать позволять пользователю нажимать и пинговать ваш сервер каждые несколько секунд, пока запрос не сработает. Как только это произойдет, вы можете очистить сообщение о состоянии, и все будет нормально. Надеюсь, это имеет смысл.

Фрагмент кода JavaScript:

if (response.error) {
    if (response.error === 'some type') {
        showStatusMessage('Network/DB down');
        startPollingNetworkDBStatus();
    } else {
        // Additional error handling...
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...