Вопрос

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

Это было полезно?

Решение

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

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

Другие советы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Google говорит:

Отзывчивый

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top