Занятые курсоры - почему? - PullRequest
9 голосов
/ 03 января 2009

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

Ответы [ 12 ]

10 голосов
/ 03 января 2009

Таким образом, я думаю, что пользователь должен быть заблокирован от выполнения каких-либо действий в вашем приложении, только когда интервал ожидания очень короткий (2 секунды или меньше) и когнитивные издержки выполнения многопоточности могут привести к меньшему стабильное приложение. Подробнее см. Ниже.

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

Для операции длительностью от 0,1 до 2 секунд вам обычно не нужно выполнять асинхронную операцию. Просто переключите курсор на песочные часы, а затем выполняйте работу на линии. Визуальной подсказки достаточно, чтобы конечный пользователь был доволен.

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

Для операции, продолжающейся более 2 секунд , вы обычно должны работать асинхронно. Но даже тогда вы должны предоставить какой-то индикатор прогресса. Людям трудно сконцентрироваться в отсутствие стимуляции, и 2 секунды достаточно для того, чтобы конечный пользователь естественным образом перешел от сознательной «сфокусированной» деятельности к сознательной «ожидающей» деятельности.

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

Там, где беспорядок, где у вас есть операция, которая обычно завершается за время X, но иногда занимает Y , где Y намного больше, чем X. Это может произойти для удаленных действий, таких как достижение через сеть. Вот тогда вам может понадобиться комбинация вышеуказанных действий. Например, рассмотрите возможность отображения таймера для яиц в течение первых 2 секунд, и только затем добавьте индикатор прогресса. Это позволяет избежать выведения конечного пользователя из «сфокусированного» контекста непосредственно в контекст «ожидания» без промежуточного шага.

5 голосов
/ 03 января 2009

Важно не только занятый курсор, но важно, безусловно, всегда , чтобы дать пользователю обратную связь о том, что что-то происходит в ответ на его ввод. Важно понимать, что без занятого курсора, индикатора выполнения, пульса, мигающей кнопки, вращающейся дубинки, танцующего клоуна ... НИЧЕГО не имеет значения - если у вас его нет, а компьютер просто сидит и ничего не делает компьютер выглядит сломанным для пользователя.

немедленная обратная связь для каждого действия пользователя невероятно важна.

4 голосов
/ 03 января 2009

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

Тем не менее, иногда Java-приложения, такие как Netbeans или Eclipse, или даже Visual Studio, зависают без занятого курсора и без надежды. Но в этом случае занятый курсор, вероятно, тоже не сильно поможет ... но я думаю, что вы правы: занятые курсоры относятся к эпохе, не связанной с многопоточностью, для приложений. Например, в приложениях Flex ВСЕ автоматически представляют собой обратные вызовы, управляемые событиями, поэтому установка занятого курсора будет просто бессмысленной (хотя, конечно, возможной).

4 голосов
/ 03 января 2009

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

Мне интересно, что вы не видите занятых курсоров в веб-браузерах - возможно, поэтому они так нравятся людям.

Нет, подожди, у меня есть лучший ответ. Вы показываете занятый курсор, когда компьютер думает .

2 голосов
/ 03 января 2009

Для этого есть две цели:

  1. Укажите пользователю, что что-то происходит.
  2. Укажите пользователю, что сейчас ничего нельзя сделать.

Занятый курсор - лучший сигнал об операции, чем ничего. Для более длительных операций следует использовать что-то лучшее. Например, браузеры все еще работают, когда страница извлекается, и есть даже кнопка, чтобы остановить операцию. Поскольку пользовательский интерфейс полностью функционален, нет необходимости использовать занятый курсор. Однако курсор занятости может использоваться даже в таких ситуациях на переходных этапах, как при запуске операции или при ее остановке.

2 голосов
/ 03 января 2009

Когда кто-то нажимает кнопку «Обновить» в веб-браузере, должен немедленно появиться курсор «занято», чтобы сообщить пользователю, что он загружает страницу.

Я думаю, что Не заставляй меня думать , что говорит, что допустимое время загрузки для человека равно нулю секунды.

Google говорит:

Адаптивный

Можно написать код, который выигрывает каждый тест производительности в мире, но это все еще отправляет пользователей в огненном ярость, когда они пытаются использовать это. Эти это приложения, которые не являются достаточно отзывчивый - те, которые чувствуют вяло, зависать или замораживать значительные периоды или занимают слишком много времени обработать ввод.

0 голосов
/ 03 января 2009

Хотя абсолютно необходимо предупредить пользователя о том, что ваше приложение что-то делает, курсор «занято» полезен только в течение первых нескольких секунд обработки. Для задержки более 15-20 секунд должно быть представлено что-то еще, например индикатор выполнения, сообщение о состоянии, окно сообщения и т. Д. Люди предполагают, что ваше программное обеспечение заблокировано через минуту или около того, и попытаются завершить его. Иногда общие визуальные подсказки так же важны, как и занятый курсор.

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

0 голосов
/ 03 января 2009

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

Пользователь всегда должен иметь возможность отменить действие, если его выполнение занимает слишком много времени.

В ответ на комментарий курсор «занято» будет виден только на полсекунды или около того, так как после открытия диалогового окна прогресса он должен измениться на один из этих «наполовину занятых» курсоров или просто обычный курсор со стрелкой .

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

0 голосов
/ 03 января 2009

Единственное, что я считаю, занятый курсор - это информирует пользователя, что ...

Я вас не игнорирую, я просто делаю что-то еще, что может занять некоторое время

0 голосов
/ 03 января 2009

Я заметил, что в Fedora 8, по крайней мере, когда приложение устанавливает курсор «занят», фактически отображается «занятый интерактивный». Я думаю, это потому, что система по-прежнему реагирует на ввод мыши (например, перетаскивание окна и т. Д.). Кроме того, явно сложно выбрать курсор «интерактивный занят» в linux: http://www.pixelbeat.org/programming/x_cursors/

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