AJAX и прогнозирование действий
-
10-07-2019 - |
Вопрос
Я хотел бы спросить ваше мнение по этому поводу. Это теоретический вопрос.
Я нахожусь в ситуации, когда у меня отображается интерфейс, который использует AJAX для связи с сервером. Серверный язык здесь не имеет значения. У меня есть форма с полями, и каждое из них можно удалить. Если пользователь выбирает несколько «удалить» -checkboxes и нажимает Update, тогда у меня есть два варианта:
Вариант 1: При удалении полей используйте JavaScript, чтобы немедленно удалить HTML, и запустите AJAX в фоновом режиме, чтобы удалить эти поля. Это позволяет получить быстрый интерфейс - > лучший пользовательский опыт. Однако в случае сбоя вызова AJAX на стороне сервера (поля не могут быть удалены), ранее удаленные поля HTML могут дать ложное предположение для пользователя (из них удаляются).
Вариант 2: При удалении полей запустите AJAX, в зависимости от его успешности, либо удалите HTML, либо нет. Это дает точную обратную связь для пользователя, но форма будет зависать до тех пор, пока вызов AJAX не завершится = медленно (er).
Что ты думаешь? Какой подход мне кажется более подходящим, или я должен выбрать его?
Решение
Вариант 3: пометьте элементы управления как удаленные (например, наложите полупрозрачный серый прямоугольник на значок удаления). Отправьте запрос. Когда он вернется, удалите элементы управления или измените флажок, чтобы в течение нескольких секунд отображался значок ошибки (затем снимите флажок).
Разрешите взаимодействовать с остальным интерфейсом, пока это продолжается.
Другие советы
Хороший вопрос.
Третий вариант:
<Ол>Это дает пользователю обратную связь, что что-то было эффективно запрошено (отзывчивость), показывая также момент, когда он эффективно завершен.
<Ч>Кроме того, пользователь каким-то образом чувствует «удаленный вызов», который не приводит его к ошибке, потому что это действительно произошло. В любом случае, мы ничего не можем сделать, чтобы скрыть это чувство, потому что задержка всегда будет.