it-swarm.com.de

Anzeige der Warteanzeige für eine lange laufende Aufgabe - die manchmal schnell abgeschlossen wird

In einer Webanwendung, an der ich arbeite, gibt es einige Aktionen, die normalerweise einige Sekunden oder länger dauern, abhängig von typischen Variablen (Verbindungsgeschwindigkeit, PC-Geschwindigkeit, Datenmenge, Hostlast usw.). Für diese zeigen wir einen Fortschrittsbalken oder einen Ladespinner mit einer Meldung "Bitte warten", je nach Kontext. (Ich werde beide von hier an beide "Warteanzeige" nennen)

Das funktioniert gut ... wenn die Aktion tatsächlich länger als eine Sekunde dauert. Wenn die Aktion jedoch weniger als 500 ms dauert, sieht der Effekt, dass die Warteanzeige angezeigt wird und dann verschwindet, sofort wie eine Panne aus.

Ich kann mir mindestens zwei Möglichkeiten vorstellen, die diese Situation verbessern könnten:

  1. Erstellen Sie ein Mittel, um vorherzusagen, wie lange jede Aktion dauern wird (verfolgen Sie die ersten Anforderungslängen und vergleichen Sie sie mit einem Durchschnitt, verwenden Sie dafür bekannte Datengrößen als Multiplikator usw.), und entscheiden Sie dann anhand dieser Methode im Voraus, ob dies der Fall ist oder nicht Zeigen Sie die Warteanzeige an. Vorteile: wahrscheinlich besseres Ergebnis. Nachteile: Schwierig zu implementieren und manchmal falsch (was sehr schlecht ist, wenn es einige Sekunden dauert, aber nicht gedacht hat, dass es die Warteanzeige anzeigen sollte).
  2. Stellen Sie sicher, dass die Warteindikatoren immer für eine minimale Zeitdauer angezeigt werden - auch wenn sie schneller abgeschlossen werden. Vorteile: würde nie "glitchy" aussehen. Nachteile: Zeitverschwendung des Benutzers, lässt die Software langsamer aussehen.

Gibt es in diesem Bereich Forschungsergebnisse, die auf eine bessere Praxis hinweisen könnten? Gibt es bestimmte Websites, die eine gute Lösung dafür bieten? Was ist die beste Vorgehensweise?


Anstatt eine bestimmte Zeit zu warten, um es zu zeigen, habe ich gerade versucht, die Warteanzeige über 1 Sekunde einzublenden (mithilfe des CSS-Übergangs), und das fühlt sich sehr gut an. Wenn die Wartezeit tatsächlich nur 100 ms beträgt, wird die Warteanzeige kaum angezeigt und ist dann verschwunden.

21
jlarson

Sie müssen die Warteanzeige nur dann anzeigen, wenn die Wartezeit eine bestimmte voreingestellte Zeitspanne überschreitet.

Ich mache dasselbe in einer Anwendung, die ich pflege, und ich finde, dass das Warten von 1 Sekunde vor dem Anzeigen des Indikators eine gute Zeitspanne ist und es ermöglicht, dass schnelle Prozesse abgeschlossen werden, ohne dass der Indikator blinkt und wie ein Fehler aussieht.

16
raffi

Wie wäre es zu zeigen, wie lange es gedauert hat, zusätzlich zu Ihrem Sanduhrverhalten?

Anstatt Technikfreak zu sein und "Abgeschlossen in 500 ms" anzuzeigen, zeigen Sie "Abgeschlossen in weniger als einer Sekunde".

2
Marc Manswero

Mobile Gmail macht das auch. Die Ladeanzeige ist ein Farbband am unteren Rand des Bildschirms. Wenn die Aktualisierung abgeschlossen ist, wird "Aktualisiert" angezeigt. Sehr unauffällig, aber immer noch klar, dass etwas geladen ist.

Basecamp Mobile verfügt über eine Ladeanzeige im Voraus. Wenn es länger als erwartet dauert, wird "Noch geladen, bitte warten" angezeigt, um sicherzustellen, dass die besonders langen Ladezeiten bestätigt werden und die App nicht eingefroren ist.

1
kmiyashiro

Ich würde mich für einen zweistufigen Ansatz entscheiden.

Wenn der Benutzer eine Aktion startet, deaktivieren Sie die Schaltfläche und zeigen Sie ein wenig Laden neben der Schaltfläche an.

Messen Sie alle "Aktionen" in den Systemen und verwenden Sie diejenigen, die mehr als 250-500 ms dauern (abhängig von den tatsächlichen Client-Server-Rundenzeiten), und fügen Sie eine "größere" Ladeanimation hinzu.

In unserer Windows-Formularanwendung starten 'alle' Aktionen einen kleinen wartenden Drehknopf am Mauszeiger. Langsame Jobs starten einen "großen" wartenden Spinner in der Mitte des Bildschirms. Wirklich langsame Jobs zeigen einen Fortschrittsbalken oder einen Prozentsatz neben dem 'großen' wartenden Spinner.

1
Barfieldmv

Zeigen Sie das "Warten" auf Knopfdruck an (dh so früh wie möglich). Die meiste Zeit ist ein schnell füllender Fortschrittsbalken oder eine sehr kurzlebige Sanduhr erfreulich für den Endbenutzer (hey, dieses Programm ist schnell!), Und ich habe noch nie einen gesehen, der "wie eine Panne aussieht". ""

0
bobobobo