Первый сценарий — это действие, выполнение которого может занять примерно 2–5 секунд после того, как пользователь нажмет кнопку. На кнопке будет отображаться Busy Spinner, пока процесс не будет завершен.

После завершения действия пользователю отображается обратная связь.

Второй сценарий — это действие, которое может занять пару минут. В этом сценарии я не считаю уместным просто отображать Busy Spinner на кнопке. Я думаю, что пользователь начнет задаваться вопросом, есть ли прогресс. Поэтому вместо этого будет отображаться диалоговое окно:

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

Мой вопрос: насколько долго это слишком долго для простого Busy Spinner? Примерно в какие предполагаемые сроки я должен начать вводить диалог, в котором упоминается, сколько примерно времени займет действие?

173
Michał Perłakowski 14 Сен 2016 в 00:35
33
Обратите внимание, что во многих случаях занятость счетчика означает, что система неадекватно многозадачна/конвейерна. Пользователи никогда не должны ждать, если только они (не машина) специально не ждут результатов этой операции.
 – 
keshlam
12 Сен 2016 в 16:30
30
Если возможно, добавьте индикатор выполнения в любом случае.
 – 
ratchet freak
12 Сен 2016 в 21:23
14
Вы должны поместить задачу в очередь фоновых задач и разрешить пользователю выполнять другие действия или даже закрыть браузер. Это может быть только у меня, но когда я жду долго выполняющихся задач в браузере, я всегда боюсь, что соединение будет прервано, и я не только буду ждать напрасно, но все данные, которые были обработаны, были отброшены, и я придется переделывать задание.
 – 
André Borie
13 Сен 2016 в 02:21
5
@Ralt, какое приложение вы использовали для создания этих макетов?
 – 
Arnold Daniels
13 Сен 2016 в 13:52
5
@Jasny-ArnoldDaniels Просто Adobe Illustrator. Угольный штрих и шрифт Hand Of Sean
 – 
Ralt
13 Сен 2016 в 16:18

8 ответов

Лучший ответ

Джейкоб Нильсен написал статью под названием Время отклика — 3 важных ограничения.

Основные рекомендации относительно времени отклика остаются примерно одинаковыми на протяжении тридцати лет [Miller, 1968; Кард и др. 1991]. Он написал это в 1993 году:

  • 0,1 секунды — это предел, при котором пользователь чувствует, что система мгновенно реагирует, а это означает, что не требуется никакой специальной обратной связи, кроме отображения результата. ли>
  • 1,0 секунда — это ограничение, позволяющее потоку мыслей пользователя оставаться непрерывным, даже если пользователь заметит задержку. Обычно при задержках более 0,1, но менее 1,0 секунды специальная обратная связь не требуется, но пользователь теряет ощущение работы непосредственно с данными.
  • 10 секунд – это ограничение, позволяющее удерживать внимание пользователя на диалоге. В случае более длительных задержек пользователи захотят выполнять другие задачи, ожидая завершения работы компьютера, поэтому им следует предоставить обратную связь, указывающую, когда компьютер ожидает их завершения. Обратная связь во время задержки особенно важна, если время отклика может сильно варьироваться, поскольку тогда пользователи не будут знать, чего ожидать.

В 2014 году он обновил свое руководство следующим образом:

  • 0,1 секунды: ограничение для пользователей, которым кажется, что они непосредственно манипулируют объектами в пользовательском интерфейсе. Например, это ограничение с момента выбора пользователем столбца в таблице до момента, когда этот столбец должен быть выделен или иным образом сообщит о том, что он выбран. В идеале это также должно быть время отклика для сортировки столбца — если это так, пользователи будут чувствовать, что они сортируют таблицу. (В отличие от ощущения, что они приказывают компьютеру сделать за них сортировку.)
  • 1 секунда: ограничение для пользователей, которым кажется, что они свободно перемещаются по командному пространству, не дожидаясь компьютера. Задержка в 0,2–1,0 секунды означает, что пользователи замечают задержку и, таким образом, чувствуют, что компьютер «работает» над командой, в отличие от того, что команда является прямым следствием действий пользователя. Пример: если сортировка таблицы по выбранному столбцу не может быть выполнена за 0,1 секунды, это, безусловно, должно быть выполнено за 1 секунду, иначе пользователи почувствуют, что пользовательский интерфейс вялый, и потеряют ощущение «потока» при выполнении. их задача. При задержках более 1 секунды укажите пользователю, что компьютер работает над проблемой, например, изменив форму курсора.
  • 10 секунд: ограничение для пользователей, удерживающих свое внимание на задаче. Все, что медленнее 10 секунд, требует индикатора процента выполнения, а также четко обозначенного способа прерывания операции пользователем. Предположим, что пользователям потребуется переориентироваться, когда они вернутся к пользовательскому интерфейсу после задержки более 10 секунд. Задержки более 10 секунд допустимы только во время естественных перерывов в работе пользователя, например при переключении задач.
179
rohithpr 14 Сен 2016 в 11:37
8
Спиннер просто фиксирует пользователя в состоянии сомнения, что-то сломалось или что-то занято на эти 1-10 секунд...
 – 
rackandboneman
12 Сен 2016 в 15:40
80
Так каков ответ? Это просто копия/вставка без уточнения текущего дела.
 – 
Kristiyan Lukanov
12 Сен 2016 в 16:21
10
Он отвечает на вопрос «Мой вопрос: насколько долго это слишком долго для простого Busy Spinner?»
 – 
SteveD
12 Сен 2016 в 16:24
13
Вы можете выделить этот ответ (например, 1-10 секунд: счетчик, 10+ секунд: процент). В частности, в первой цитате вообще не упоминаются спиннеры, поэтому сначала создается впечатление, что это на самом деле не отвечает на вопрос (я бы также просто удалил первую цитату, она не добавляет никакой ценности второй цитате).
 – 
tim
12 Сен 2016 в 16:43
6
Но тогда, конечно, это должен быть повторяющийся вопрос, потому что эти 0,1, 1, 10 секунд должны были использоваться в качестве ответа несколько раз на этом сайте.
 – 
icc97
12 Сен 2016 в 18:01

Представьте, что мы с вами разговариваем на улице. Вы спросили меня, есть ли у меня время, и я почти не колеблясь смотрю на часы и говорю вам. Вы не задумываетесь об этом. Затем вы спрашиваете меня, могу ли я указать вам дорогу до приличной кофейни. Могут встречаться некоторые варианты:

  1. Я немедленно начинаю наматывать набор инструкций

  2. Кажется, я что-то обдумываю — может быть, я выбираю лучшую кофейню с учетом текущего местоположения или пытаюсь найти наилучшие направления для прогулки.

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

  4. Я стою и ничего не делаю, как будто и не слышу тебя.

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

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

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

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

78
Roger Attrill 12 Сен 2016 в 12:57
7
Вот почему у нас нет программного обеспечения, написанного Джоном Нэшем.
 – 
user67695
12 Сен 2016 в 16:30
11
Люблю аналогию, действительно хорошо объясненную :)
 – 
Devin
12 Сен 2016 в 17:33
3
Я делаю четыре. Но в отличие от некоторых плохо написанных программ, я действительно отвечаю при этом... ... Я не бот.
 – 
wizzwizz4
12 Сен 2016 в 19:44
14
Странный. Многие программы, которыми я пользовался, ведут себя так: «5. Я как бы обдумываю что-то и говорю, что сейчас же отвечу, а потом бездельничаю до бесконечности. Время от времени повторяю, что только собираюсь ответить. "
 – 
O. R. Mapper
13 Сен 2016 в 12:06
34
Занятый прядильщик больше похож на то, что я стою и говорю: «Ммм, ..., ммм, ..., ммм, ..., ммм, ..., ммм, ..., ммм, ..., ммм, . ..., ммм, ..., ммм, ..., ммм, ..., ммм, ..., ммм", пока вы не сдадитесь и не уйдете.
 – 
Dawood ibn Kareem
14 Сен 2016 в 10:49

Скотт Клеммер придерживается следующего практического правила:

Ответ короче секунды: Нет обратной связи

Ответ от 1 до 5 секунд: BusySpinner

Ответ длиннее 5 секунд: Индикатор выполнения

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

37
Community 16 Июн 2020 в 13:51
13
Я голосую за 5 секунд, а не за 10. Это эмпирический тест, который вы можете провести самостоятельно, замерив время, глядя на экран. Проверяйте свои чувства, пока часы тикают. 10 секунд могут показаться долгими. Появление индикатора прогресса, по сути, говорит пользователю: «Это может занять некоторое время, так почему бы не пойти и не заняться чем-нибудь другим на некоторое время». Сообщая им заранее, вы снижаете их склонность накапливать разочарование при взаимодействиях продолжительностью более 5 секунд.
 – 
PhillipW
12 Сен 2016 в 19:10
5
Если вы измеряете свои собственные чувства, осознавая, что проверяете это, это плохой эмпирический тест.
 – 
Rhymoid
13 Сен 2016 в 20:33
3
Я думаю, вам нужно провести «проверку на реальность». Это состояние ума, при котором вы можете отступить от «автоматической» жизни и наблюдать за собой и своим взаимодействием с внешним миром. Это то, что я называю «выборкой из одного», но она дает вам гипотезы, которые вы затем можете проверить, используя большую выборку.
 – 
PhillipW
14 Сен 2016 в 08:37
2
Это называется индикатором прогресса, а не индикатором прогресса, и как пользователь я им совсем не доверяю. Они лгут. Это просто уродливые горизонтальные спиннеры. Подскажите какие шаги выполняются.
 – 
David Conrad
15 Сен 2016 в 10:00
Я согласен с вашим выводом, но я не согласен с тем, что вы пришли к нему эмпирическим путем, как вы предлагаете. Для этого вам нужно было бы выйти и собрать данные об этом из статистически значимой группы выборки и проанализировать их.
 – 
Nick Coad
19 Сен 2016 в 07:36

Согласно этой статье от NNGroup, основанной на исследованиях когнитивной психологии:

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

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

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

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

  • использовать индикатор выполнения
  • объясни почему долго загружается
  • показать приблизительное время загрузки
12
Kristiyan Lukanov 12 Сен 2016 в 12:30
1
+1 - странности голосования на Stack Exchange. Вы разместили это первым, что фактически совпадает с ответом, получившим наибольшее количество голосов, и все же каким-то образом вы получили около 3% голосов.
 – 
icc97
16 Сен 2016 в 03:41
2
Да, когда вопрос становится популярным, люди, как правило, голосуют за ответ с самым высоким рейтингом, даже не читая его.
 – 
Kristiyan Lukanov
16 Сен 2016 в 10:47
2
Вот почему мне нравятся сайты обмена стеками, на которых ответы перечислены в случайном порядке, а не в порядке голосования. Мне также нравится этот ответ лучше, чем принятый. Около 10 секунд — это время, когда пользователи сдаются, и результат должен появиться задолго до того, как пользователи сдадутся, что делает 3 секунды справедливым эмпирическим правилом.
 – 
Peter
17 Сен 2016 в 22:47

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

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

В качестве примера можно привести отправку электронного письма на gmail без предварительной загрузки вложения. Сообщение меняется с "отправка" на "все еще работает".

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

7
Ivan Venediktov 15 Сен 2016 в 22:03
27
Пожалуйста, не меняйте сообщение через 10 или 15 секунд. Если серверная часть предоставляет актуальную информацию об обновлении (этап 1 завершен, переходим к этапу 2), используйте ее в пользовательском интерфейсе. Если серверная часть НЕ предоставляет информацию об обновлении, не придумывайте искусственный прогресс в пользовательском интерфейсе.
 – 
MSalters
12 Сен 2016 в 18:43
23
О, чувак, это именно то, что меня бесит в первых 25% «загрузки» Netflix. Он считает от 0% до 25%, в то время как на самом деле ничего не загружается, чтобы создать впечатление прогресса. Если все идет хорошо, он никогда не достигает 25% до того, как действительно начнет буферизацию, но если нет, то он останавливается на уровне 25%, и вы ждете, пока он выйдет из строя или наверстает упущенное.
 – 
Martin
12 Сен 2016 в 19:14
14
@mouseas, на самом деле все еще хуже. Однажды я отключил коаксиальный кабель от своего кабельного модема как раз перед тем, как выйти в другую комнату и нажать на шоу Netflix. Полоса загрузки медленно поднялась до 99% и оставалась там целую минуту, прежде чем, наконец, признать, что с подключением что-то не так.
 – 
Wildcard
13 Сен 2016 в 03:03
7
@MSalters: Чтобы конкретизировать ваше беспокойство: без какой-либо обратной связи от бэкэнда, как внешний интерфейс узнает, что «он все еще работает»?
 – 
O. R. Mapper
13 Сен 2016 в 12:09
Мне это не нравится; искусственной информации нельзя доверять, потому что таймер изменения сообщения находится на стороне клиента, который будет работать, даже если фактическая работа не выполнена. Информация об обновлении более полезна.
 – 
EKons
15 Сен 2016 в 21:46

Извините, что вы все цитируете старые исследования. Google обновил это.

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

Через 250 мс пользователь начинает замечать, что происходит действие.

500 мс пользователь ожидает обновления в ответ.

1s пользователь ожидает, что контент будет загружен.

10s я сдаюсь.

Слайд 12. d/13AJe2Ip4etqA8qylrva7bEgu1_hAvsq_VQiVOAxwdcI/mobilepresent?slide=id.g1e697bbb_0_7

https://developers.google.com/web/tools/chrome-devtools/profile/evaluate-performance/rail?hl=en

5
James Wilkinson 16 Сен 2016 в 23:45
Чем это отличается от того, что говорили другие? 0s - 1s, чувствует себя быстро. 1 с - 10 с кажется медленным. 10s+ кажется сломанным.
 – 
Nick Coad
19 Сен 2016 в 07:39

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

1
blackpen 14 Сен 2016 в 15:35
... в веб-контексте. Этот вопрос можно применить к любому контексту, а не только к веб-приложениям.
 – 
J. Dimeo
15 Сен 2016 в 22:12
Да. Конечно. Аспект «ожидания» тот же.
 – 
blackpen
16 Сен 2016 в 02:28

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

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

Менее чем идеальное решение для этого (иногда реализованное) состоит в том, чтобы просто решить, что пользователь будет ждать некоторое время, независимо от того, насколько быстро задача будет выполнена... например. 1 секунда + время задачи, таким образом, счетчик/индикатор прогресса хотя бы остается видимым в течение некоторого времени.

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

0
Brad Thomas 19 Сен 2016 в 16:21