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


8

Хотя возможно и иногда желательно использовать прерывания смены контактов для считывания состояния кнопок, проще опрашивать состояние кнопок loop(). Это часто используемая техника.

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

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

Вопрос в том, как долго, в общем-то, пользователь увидит это?


2
Если вы loop()работаете довольно медленно (я имею в виду, что это слишком медленно, чтобы дать возможность достаточно быстрой обратной связи с конечным пользователем), вы можете использовать ISR при изменении уровня вывода и обеспечить немедленную обратную связь (если это можно быстро рассчитать) для пользователя или дать ему временную обратную связь (например, горит светодиод), чтобы сообщить ему, что его запрос был распознан и будет обработан в ближайшее время (в loop()); Вы позволите loop(), установив некоторую глобальную boolпеременную в ISR.
jfpoilpret

1
Вероятно, это один из немногих случаев, когда нажатие клавиши полезно.
Cybergibbons

Ответы:


14

Короткий ответ: у вас есть 100 миллисекунд, чтобы ответить пользователю, если вы хотите, чтобы он почувствовал, что действие произошло мгновенно.

Согласно Джейкобу Нильсену в своей книге « Usability Engineering» от 1993 года, которая считается важным справочником в области юзабилити систем и пользовательского опыта

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

Он также упоминает, что этот основной совет относительно времени отклика был примерно одинаковым на протяжении многих десятилетий [Miller 1968; Card et al. 1991].

Я взял эту цитату из этой статьи: Время ответа: 3 важных предела , также написанных Джейкобом Нильсеном.

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

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

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

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


1
Блестящий ответ. Спасибо за дополнительную информацию, это также полезно.
Cybergibbons

3

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

Так что если вы хотите совершенства, примите около 15 мс задержки. Если вы хотите действительно хорошо, возьмите 100 мс задержки. 100 мс - это в среднем 50 мс, и, безусловно, пройдет для людей.

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

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

Эти данные являются сугубо личным опытом геймера и программиста. YMMV и помните, что просто попробовать это самому - лучший способ узнать, каково это. Единственный «научный» ответ - это <10 миллисекунд, кроме того, речь идет о способности воспринимать задержку (которая варьируется в зависимости от человека и момента) и терпимости пользователя.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.