Hallo Welt, ich glaube, ich habe hier im Forum irgendwann mal gelesen, dass ein Queue für Eingaben einer Benutzerschnittstelle unsinnig sind, weil bei Verzögerungen der Abarbeitung dann irgendwann noch auf "veraltete" Eingaben erfolgen, und den Benutzer verwirren könnten. Wie macht man das richtig?
Nichtig schrieb: > Wie macht man das richtig? Ich beherzige meistens den Grundsatz 'do the visible work first', so erkennt der Benutzer schon mal, das sein Tastendruck erkannt wurde und die Mimik nun ihren Zauber im Hintergrund beginnt. Lange Operationen kann man dem Benutzer durch irgendwelche 'Busy' LED oder Fortschrittsbalken kundtun oder einfach nur entrüstet piepsen, wenn da schon wieder jemand die Taste drückt, obwohl es noch gar nicht soweit ist. Im Idealfall ist die Technik so schnell, das man gar nicht erst eine Warteschlange aufbauen kann.
:
Bearbeitet durch User
Grundsätzliche Regel - zwischen einer menschlichen Eingabe und der Aktualisierung des Bildschirmes dürfen maximal 20ms vergehen. Auch wenn die Warteschlange immer leer sein sollte - du brauchst sie trotzdem. Zum einen startest du Hintergrundprozesse, die ihre Rückmeldungen in die Warteschlange schieben. Zum anderen kannst du nicht alle Verzögerungen vermeiden. Z.B. Ein anderes Programm hatte den gesamten Hauptspeicher belegt und dein Programm in die Auslagerungsdatei verschoben.
Noch ein Kommentar schrieb: > zwischen einer menschlichen Eingabe und der > Aktualisierung des Bildschirmes dürfen maximal 20ms vergehen. Völlig praxisfremd. In 20ms hat die FB das Kommando noch nicht mal abgesendet. In meinen Entwicklungen verzögert die Entprell-Lib schon um 40ms. Und die Benutzer sind oft erstaunt, wie schnell das Gerät gegenüber üblichen Kaufgeräten reagiert. Viele andere Geräte mit 32Bit-Boliden und RTOS sind dagegen extrem lahmarschig.
Nichtig schrieb: > Wie macht man das richtig? Man reagiert umgehend auf eine Benutzereingabe. Und wenn die Reaktion eine Sanduhr ist. Und wenn die Reaktion eine Sanduhr ist, dann werden alle Benutzereingaben gelöscht, die während der Sanduhrphase getätigt werden. Ein wirklich grausames Gerät ist z.B. mein DVD-Player: wenn ich da auf die "Schubladentaste" zum Auswerfen drücke, dann ist die einzige Reaktion, die ich erwarte, dass das Ding sofort mit allem aufhört, was es sonst grade so macht und die Scheibe auswirft. Was das Ding tut: es rödelt mit variabler Drehzahl noch 30 Sekunden weiter auf der DVD herum und versucht das unleserliche Ding einzulesen. Und irgendwann kommt die Schublade herausgefahren und fährt danach sofort wieder ein, weil ich natürlich wiederholt auf die "Schubladentaste" gedrückt habe. Und das Spiel beginnt von Neuem. Für dieses unheimlich simple UI hätte ich also schon 2 Verbesserungsvorschläge...
Matthias S. schrieb: > Ich beherzige meistens den Grundsatz 'do the visible work first', so > erkennt der Benutzer schon mal, das sein Tastendruck erkannt wurde und > die Mimik nun ihren Zauber im Hintergrund beginnt. Dem würde ich zustimmen. Wir haben einen Fernsehen von Philips (der war schon in der Wohnung drin, Geld würde ich dafür nicht ausgeben) und da dauert die Reaktion auf eine Eingabe schonmal mehrere Sekunden. Da weiß man nicht, ob der Fernseher das jetzt mitgekriegt hat und arbeitet oder nicht. Also drückt man nach z.B. fünf Sekunden nochmal und nach acht Sekunden öffnet sich das Menü und schließt sich sofort wieder. Dann ist zumindest ein leeres Fenster, das sich sofort öffnet, doch besser.
Lothar M. schrieb: > Ein wirklich grausames Gerät ist z.B. mein DVD-Player: wenn ich da auf > die "Schubladentaste" zum Auswerfen drücke, dann ist die einzige > Reaktion, die ich erwarte, dass das Ding sofort mit allem aufhört, > was es sonst grade so macht und die Scheibe auswirft. > Was das Ding tut: es rödelt mit variabler Drehzahl noch 30 Sekunden > weiter auf der DVD herum und versucht das unleserliche Ding einzulesen. > Und irgendwann kommt die Schublade herausgefahren und fährt danach > sofort wieder ein, weil ich natürlich wiederholt auf die > "Schubladentaste" gedrückt habe. Und das Spiel beginnt von Neuem. Das ist leider nichts unübliches. Man könnte es auch so bezeichnen: "Der Fluch der Libs"... OK, längst nicht immer sind die Libs schuld, viele stellen auch asynchrone APIs bereit. Aber natürlich: deren Nutzung überfordert die Lib-Gluer oder erzeugt bei ihnen zumindest mehr Aufwand, als sie bereit sind zu investieren. Und dann kommt halt recht regelmäßig genau sowas raus...
Lothar M. schrieb: > wenn ich da auf > die "Schubladentaste" zum Auswerfen drücke,... Das Spielchen kenne ich auch. Ich hab da so den Eindruck, daß es für alle handelsüblichen DVD Player (und auch die CD-Player) nur einen einzigen Firmwarehersteller auf der Welt gibt und daß bei diesem der Lehrling oder die Putzfrau das komplette Userinterface geschrieben hat. Aber laß mal, die User-Interfaces bei billigen China-MP3-Playern waren und sind zwar anders, aber nicht weniger kröpelig. W.S.
W.S. schrieb: > und daß bei diesem der Lehrling oder die Putzfrau das > komplette Userinterface geschrieben hat Oder solche Experten, wie gerade in einem Heizungsforum gefunden. Mensch berichtet von Problemen mit seiner Buderus-Gastherme. Gerät geht in Störung und muß dann - logo - neu gestartet werden und wiederholt das Spiel natürlich, wenn die Fehlerursache nicht behoben wurde. Erster Satz von Mensch, er sei Softwarespezialist und die Software von Buderus wäre sowas von Grottenschlecht!! Kein Wort über die Störungsursache, aber Genörgel, dass die Resetversuche offensichtlich (der Softwarespezialist) nicht "durchkommen", wenn zu schnell gedrückt wird. Und das Steuergerät im Wohnzimmer wäre sowieso auch unterirdisch, wegen des bescheuerten Softwareprotokolls!!! Selten so einen sinnfreien Beitrag gesehen...aber natürlich Spezialist :-) Gruß Rainer
Rainer V. schrieb: > Erster Satz > von Mensch, er sei Softwarespezialist und die Software von Buderus wäre > sowas von Grottenschlecht!! Man könnte sich darüber beschweren, wenn da kein Grund für die Störung angezeigt wird oder wie heute in Autos üblich nur ein 'Service rufen'. Wenn die Steuerung aber sinnvolle Störungsgründe anzeigt, hat Buderus sicher richtig programmiert. Den Vogel in der Konsumerelektronik hat m.E. Loewe abgeschossen, mit einer derart langsamen Benutzerführung, das du ein paar Stunden vor der schweineteuren Glotze sitzt, nur um Programme zu ordnen.
:
Bearbeitet durch User
Matthias S. schrieb: > Wenn die Steuerung aber sinnvolle Störungsgründe anzeigt, hat Buderus > sicher richtig programmiert. Na ja, der Spezialist ist eben anderer Ansicht...Ich bin da auch nur hin, weil ich z.Z. auch Probleme mit den Temperaturfühlern habe und sehen wollte, ob ich was Interessantes finde... Rainer
Matthias S. schrieb: > > Den Vogel in der Konsumerelektronik hat m.E. Loewe abgeschossen, mit > einer derart langsamen Benutzerführung, das du ein paar Stunden vor der > schweineteuren Glotze sitzt, nur um Programme zu ordnen. Da lob ich mir den alten Sony meiner Eltern, hatte eine am PC sortierbare Senderliste. Mein Panasonic kanns auch, sogar übers Netzwerk 😎
Lothar M. schrieb: > DVD-Player: wenn ich da auf die "Schubladentaste" zum > Auswerfen drücke, dann ist die einzige Reaktion, die ich > erwarte, dass das Ding sofort mit allem aufhört, > was es sonst grade so macht und die Scheibe auswirft. Das würde mich ja jetzt wirklich interessieren: Kennt irgendjemand einen DVD-Player, der diesen Test bestehen würde?
Peter D. schrieb: > In meinen Entwicklungen verzögert die Entprell-Lib schon um 40ms. Und > die Benutzer sind oft erstaunt, wie schnell das Gerät gegenüber üblichen > Kaufgeräten reagiert. Man muss ja nicht unbedingt eine Fahrstuhlsteuerung, bei der man während des Tastendrucks gefühlt langsam bis drei zählen muss, damit die Steuerung den Fahrbefehl erkennt, als Maßstab nehmen ;-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.