Pytanie:
Jak często musisz sondować przyciski interfejsu użytkownika, zanim zostaną uznane za opóźnione?
Cybergibbons
2014-03-26 22:18:27 UTC
view on stackexchange narkive permalink

Chociaż jest możliwe, a czasami pożądane, użycie przerwań zmiany pinów do odczytania stanu przycisków, łatwiej jest odpytać stan przycisków w loop () . Jest to powszechnie stosowana technika.

Jeśli loop () jest wykonywany wystarczająco szybko, naciśnięcia przycisków zawsze zostaną złapane, a użytkownik nie będzie w stanie dostrzec żadnego opóźnienia lub lag.

Możliwe, że pętla zajęłaby tyle czasu, aby spowodować, że opóźnienie lub lag zostanie zauważone.

Pytanie brzmi, jak długo by to trwało, ogólnie , zanim użytkownik to zobaczy?

Jeśli twoja `loop ()` jest raczej powolna (mam na myśli, zbyt wolna, aby być w stanie dać wystarczająco szybko informację zwrotną do użytkownika końcowego), możesz ewentualnie użyć ISR przy zmianie poziomu pinów i dostarczyć natychmiastową informację zwrotną (jeśli można to obliczyć szybko) do użytkownika lub przekazać mu tymczasową informację zwrotną (np. świeci się dioda LED), aby poinformować go, że jego żądanie zostało rozpoznane i wkrótce zostanie przetworzone (w `loop ()`); pozwoliłbyś `loop ()`, ustawiając jakąś globalną zmienną `bool` w ISR.
Prawdopodobnie jest to jeden z nielicznych przypadków, w których kliknięcie klawiszem jest przydatne.
Dwa odpowiedzi:
Ricardo
2014-03-26 22:39:34 UTC
view on stackexchange narkive permalink

Krótka odpowiedź jest taka, że ​​masz 100 milisekund na udzielenie użytkownikowi odpowiedzi, jeśli chcesz, aby poczuł, że akcja nastąpiła natychmiast.

Według Jacob Nielsen w swojej książce Inżynieria użyteczności z 1993 roku, która jest uważana za ważne odniesienie w użyteczności systemów i wrażeniach użytkownika:

  • 0,1 sekundy dotyczy granicy odczuwania przez użytkownika, że ​​system reaguje natychmiastowo, co oznacza, że ​​nie jest potrzebna żadna specjalna informacja zwrotna poza wyświetleniem wyniku.

On także wspomina, że ​​ta podstawowa rada dotycząca czasu reakcji była mniej więcej taka sama od wielu dziesięcioleci [Miller 1968; Card i in. 1991].

Cytat z tego artykułu: Response Times: The 3 Important Limits, również napisany przez Jacoba Nielsena.

Zwróć uwagę, że w tym czasie musisz uwzględnić cały czas poświęcony na przeczytanie przycisku i przekazanie użytkownikowi opinii.

Inne progi czasu odpowiedzi, które są ważne dla wygody użytkownika, z tego samego źródła, ale nie zostały wymienione bezpośrednio przez OP są następujące:

  • 1,0 sekunda to ograniczenie przepływu myśli użytkownika, aby pozostać niezakłóconym, nawet jeśli użytkownik zauważy opóźnienie. Zwykle nie jest wymagana żadna specjalna informacja zwrotna w przypadku opóźnień większych niż 0,1, ale krótszych niż 1,0 sekunda, ale użytkownik traci poczucie, że działa bezpośrednio na danych.

  • 10 sekund to o granicy skupienia uwagi użytkownika na dialogu. W przypadku dłuższych opóźnień użytkownicy będą chcieli wykonywać inne zadania, czekając na zakończenie pracy komputera, dlatego powinni otrzymać informację zwrotną wskazującą, kiedy komputer oczekuje na wykonanie. Informacje zwrotne w czasie opóźnienia są szczególnie ważne, jeśli czas odpowiedzi może być bardzo zmienny, ponieważ użytkownicy nie będą wtedy wiedzieć, czego się spodziewać.

Świetna odpowiedź. Dzięki za dodatkowe informacje, są również pomocne.
Lodewijk
2014-03-27 05:50:00 UTC
view on stackexchange narkive permalink

Powszechnie wiadomo, że ludzie nie są w stanie dostrzec zmian, które następują po 10 ms od ich wykonania. Ta reaktywność zaowocuje doświadczeniem, które ostatnio było najczęściej opisywane jako „zgryźliwe”. Jest to zauważalne, ale użytkownikom trudno jest nadać mu nazwę.

Więc jeśli chcesz doskonałości, zajmij około 15 ms opóźnienia. Jeśli chcesz naprawdę dobrze, weź 100 ms opóźnienia. 100 ms to średnio 50 ms i na pewno minie dla ludzi.

Istotne są również aplikacja i oczekiwany czas odpowiedzi. Przesuwane drzwi lub winda mają bardzo dużą tolerancję (ponieważ obiekt fizyczny zawsze zajmie dużo więcej czasu), podczas gdy interfejsy automatów biletowych nie mają w ogóle czasu.

Górną granicą odpytywania byłoby około 1500 ms. Wszędzie wokół ludzie zawsze zauważą, że jest to powolne.

Te dane są czysto osobistym doświadczeniem gracza i programisty. YMMV i pamiętaj, że po prostu wypróbowanie tego samemu jest najlepszym sposobem, aby dowiedzieć się, jakie to uczucie. Jedyną „naukową” odpowiedzią jest <10 milisekund, poza tym chodzi o zdolność dostrzegania opóźnienia (które różni się w zależności od osoby i momentu) oraz tolerancję użytkownika.

Na marginesie możesz spróbuj zmieniać opóźnienia, aby oszczędzać baterię lub czas procesora, gdy interfejs nie jest używany. Akcja użytkownika, tym szybsze odpytywanie. Kiedy aplikacja działa, sonduj bardzo powoli. Lepiej sondować, gdy ma to znaczenie!



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...