Pracownicy naukowi z Carnegie Mellon University, New York University oraz AT&T Labs-Research przeprowadzili eksperyment, mający na celu zbadanie wpływu nieliniowego zachowania paska postępu na ludzkie odczucie jego długości trwania. W tym celu wyodrębnili 8 algorytmów postępu i pokazywali po dwa (jeden po drugim) grupie badanych osób. Za każdym razem badający miał ocenić, który pasek postępu pokonywał dystans od 0 do 100% szybciej, czy też może oba czasy były równe. Oczywiście w rzeczywistości oba czasy były identyczne i trwały 5,5 sekundy. Okazało się, że badający ocenili jako krócej trwające paski postępu, zwalniające na początku i przyspieszające na końcu.
Zdecydowanymi liderami okazały się algorytmy:
- Power: f(x) = (x+(1-x)*0.03)^2
- Fast power: f(x) = (x+(1-x)/2)^8
Tak więc aby jak najbardziej zniwelować negatywne odczucia użytkownika wywołane oczekiwaniem na załadowanie gry, strony, prezentacji, zainstalowanie oprogramowania, etc., powinniśmy stosować tego typu nieliniowe algorytmy postępu.
Wizualizacja wszystkich algorytmów jednocześnie.
Kod źródlowy: src-single.zip [355kB]
Źródło: Rethinking the Progress Bar
Genialne

Takie badania to prawdziwa przyjemność. Efekt niesamowity. A czy można potestować z osobna poszczególne paski ?
Ok, na prośbę wizualizuję algorytmy pojedynczo a pod zamieszczonym linkiem można obejrzeć wszystkie jednocześnie.
no to lepiej żeby juzerzy nie zajarzyli jak sie ma pasek do poboru aplikacji hahaha .. bardzo ciekawy przykład
nie ma nic bardziej wkurzającego niż 5 minutowe wpatrywanie sie w 1% pobranej treści która ani drgnie.
Super teraz jest. Dziękuję za wizualizacje indywidualne.
Moim zadniem najlepszy jest Fast Power.
Ciekawe czemu w badaniach nie uwzględniono prędkości:
- Windows Speed - baaardzo powoli i gdzieś w połowie stop,
- Fiat 126p Speed - stop,
- Tusk&PO Speed - tak szybko, że można mówić o cudzie.
Skojarzyło mi się jeszcze jedno usprawnienie. Sytuacja i obecny stan:
- pasek postępu zwiększa swą wartość, następuje chwilowa przerwa w transferze, pasek się nagle zatrzymuje, po chwili transfer powraca, pasek rusza.
Ja proponuję płynne przejście:
- pasek postępu zwiększa swą wartość, nagle następuje chwilowa przerwa w transferze, pasek postępu jednak idzie dalej (mimo przerwy), użytkownik ma wrażenie, że dane są przesyłane, jeśli przerwa nie jest dluższa niż np 5% pasek zwalnia, jeśli w tym czasie trasnfer powróci, to pasek przyśpiesza, wyrownuje i wraca do swojego pierwotnego wzoru. W przypadku przerwy dłuższej niż 5% pasek zatrzyma się, aby uniknąć błędu w interpretacji stanu rzeczywistego.
Efekt ten można zaobserwowac w programie Emule (Windows). W danym momencie mamy transfer np 50kB. Nagle łączę ma awarię. Program nie zmienia wartosc na 0kB (stan faktyczny), tylko stopniowo zmniejsza wartości 40kB, 30kB, 20kB, 10kB, 0kB. Jest płynne przejście. Lepsze niż nagłe zatrzymanie.
Można by np. badać średnią prędkość z ostatnich 5% paska postępu i na jej podstawie zwiększać postęp. W tym przypadku jeżeli przy 20% nagle zerwało by połączenie, to pasek zatrzymał by się całkowicie dopiero na 25%. Jeżeli przed 25% transfer by ruszył, pasek zaczął by po woli przyśpieszać. Nie wiem czy to jednak nie przerost formy nad treścią. Może wystarczy po prostu duża bezwładność? Trzeba by to zaimplementować i posymulować.