it-swarm.com.de

Fibonacci-Paginierung

Heute bin ich auf dieses Paginierungskonzept gestoßen und fand es faszinierend: das Fibonacci-basierte Paginierungskonzept.

Es ist eigentlich ein altes Schuss , aber es hat mich zum Nachdenken gebracht, da ich in naher Zukunft einige Inhalte paginieren muss.

Die Seiten werden bald hundert und schließlich Tausende, daher brauche ich eine "clevere" Paginierung [in Gruppen] (10-30 | 31-32-33 ... 37-38-39 | 40-70), anstatt nur aufzulisten Seiten von 1 bis 200.

Wie bereits erwähnt, finde ich diesen Ansatz faszinierend, aber ich bin auch der Meinung, dass der Benutzer in der Lage sein muss, die gewünschte Seite mit möglichst wenigen Schritten zu erreichen.

Ich bin kein UX-Experte, also sind Sie der Richter: Würden Sie dies als einen guten oder einen schlechten Ansatz betrachten? Und für welchen Anwendungsfall ist dies ein guter oder ein schlechter Ansatz?

MEIN GEBRAUCHSFALL

Der Anwendungsfall des Erstellers ist mir nicht bekannt. Ich zeige einen Inhalt, der nach Zeit geordnet ist, aber die Zeitvariable ist für den Benutzer irrelevant. Seiten dienen nur zum Fragmentieren von Inhalten.

Der Benutzer selbst muss nicht zu einer bestimmten Seite gehen, da Elemente einen Permalink haben.

Angenommen, ich habe Beiträge, die Aphorismen enthalten: Sie wurden zu unterschiedlichen Zeiten veröffentlicht, damit ich sie auflisten und bestellen und schließlich in Seiten aufteilen kann, aber das Datum und die Uhrzeit selbst sind irrelevant.

72
XCore

Welches Problem lösen Sie damit?

Dies scheint die Lösung eines Entwicklers für ein Problem zu sein, von dem er glaubt, dass es existiert. Schauen wir uns an, wie Benutzer Seiten verwenden.

Sie wollen gehen zu:

  • eine bestimmte Seite
  • die erste Seite
  • die letzte Seite
  • ein bestimmtes Element auf einer der Seiten
  • gehe zur nächsten oder vorherigen Seite (oops, habe das vergessen, danke 3nafish)

10 Seiten nach dem Zufallsprinzip vorausspringen? Warum? Wenn Ihr Benutzer dies tun muss, lösen Sie das Problem nicht richtig.

116
Chris Aplin

Wenn Sie wirklich die Möglichkeit bieten möchten, eine beliebige Seite aus 3000 auszuwählen, gibt es eine alte Soulution von Karaboz. Die Idee ist, eine Seite wie eine Bildlaufleiste auszuwählen. Zum Beispiel, wie es für 50 Seiten aussieht: enter image description here

Sie können den Bildlaufzeiger (grau) sehr schnell bewegen, um eine Gruppe von Seiten zu erreichen, die Sie in diesem Moment wirklich benötigen. Die orangefarbene Markierungsseite, die jetzt ausgewählt ist. Ein Klick zum Wechseln der Seite.

Für 100 Seiten: enter image description here

Sie finden Beispiele und Quellen im Internet unter dem Namen "Paginator 3000".

46
Mike Frolov

Mit Ausnahme einiger Edge-Fälle halte ich Paginierung für eine schlechte Idee , insbesondere wenn es um Foren geht.

Bearbeiten: Rückblick nach 4 Jahren! Jetzt scheint das unendliche Scrollen (ich nannte es dynamisches Laden) die Lösung für moderne Apps zu sein. Ein typisches Beispiel: Reddit.

Frage: Wie würde ein Benutzer wissen, dass es in Beitrag 3 von Seite 1534 ein interessantes Katzenbild gibt?

Sie tun es nicht. Benutzer, die auf eine bestimmte Seite zugreifen müssen, sind nicht vorhanden in gängigen Forumformaten. Was Benutzer wollen, ist, diese lauten Beiträge ("Großartiger Beitrag", "WOW", "LOL", "Danke") zu überspringen und (hoffentlich) zu diesem Katzenbild zu gelangen, das jemand kann gepostet hat .

In den Forenformaten (oder ähnlichen Formaten) ist der Inhalt nach (z. B.) Seite 10 für die breite Öffentlichkeit des Internets normalerweise unbrauchbar. Ich denke, wir sollten Websites so gestalten, dass das System Benutzer davon abhält, einen Thread auf Millionen von Seiten zu verlängern.

Wie können wir dann unser Forum ohne Paginierung skalieren?

Diskurs bietet eine faszinierende Möglichkeit, lange Threads anzuzeigen: Es ruft Inhalte dynamisch ab, wenn Benutzer zum Ende der Seite scrollen.

Sie können auch versuchen, lautes/unbeliebtes Material zu unterdrücken, sodass die meisten relevanten, interessanten Inhalte auf die erste Seite passen. Reddit macht das.

Was ist, wenn Benutzer wirklich zu einer bestimmten Seite/einem bestimmten Beitrag gehen möchte?

Eine interessante Idee aus Kommentaren war, dass

der Benutzer würde wissen, dass es auf Seite 1534 ein interessantes Katzenbild gibt, weil jemand es ihnen erzählt hat .

Aber sehen Sie, wie dies mit der Paginierung brechen kann: Wenn der Benutzer auf Seite 1534 wechselt, ist das Bild auf Seite 1531 verschoben, da Moderatoren einige Spam-Beiträge gelöscht haben im Thread.

Vielmehr können wir das Konzept von Permalink verwenden. Wie würde Permalink mit dynamischem Laden funktionieren? Nun, Sie können dem Benutzer den Beitrag zeigen, der dem Permalink entspricht und mit wenigen Beiträgen verknüpft ist vor und nach, um einen Kontext zu geben. Twitter macht das irgendwie. Der Benutzer kann immer nach oben oder unten scrollen, um zusätzliche Beiträge zu laden.

Twitter showing a Tweet with context

Grobe Navigation im Thread auf und ab

Eine weitere Anforderung aus Kommentaren:

Ich möchte etwas wissen, das vor sechs Jahren passiert ist. Ich möchte ungefähr 60% des Weges durchspringen und von dort aus nachsehen.

Es gibt eine sehr beliebte Social-Media-Website, die dies mit dynamischem Laden tut. Überprüfen Sie dies heraus:

Facebook displays its timeline with dynamic loading. Users can jump to specific time periods using a scale in the side of the thread

Das dynamische Laden von Seiten ist jedoch ineffizient. Wie können Sie das lösen?

Wie bereits erwähnt, kann das dynamische Laden von Seiten sehr prozessorintensiv sein, sodass Browser manchmal abstürzen. Eine Abhilfe wäre, den älteren Inhalt, den der Benutzer bereits gelesen hat, von der Seite zu löschen. In typischen Konversationen ist es unwahrscheinlich, dass Benutzer in den Thread zurückkehren.

25
sampathsris

Ich denke, es hört nach dem coolen Faktor auf. Es ist eine dieser Situationen, "nur weil du kannst, heißt nicht, dass du es solltest".

Es ist am besten zu folgen, was konventionell ist. Das Springen von zehn Schritten vorwärts oder rückwärts ist am häufigsten (natürlich nach dem Bewegen eines). Ich würde denken, dass die nächste große Zahl, die sich durch mehrere Seiten bewegt, eine übliche Zahl ist, zu der wir in anderen Situationen springen, z. B. 25, 50 oder 100. Ihre beste Wahl ist natürlich ein Benutzertest.

Bearbeiten: Ich habe einige Kommentare gesehen, in denen behauptet wurde, Paginierung sei im Allgemeinen schlecht, daher muss ich darauf hinweisen, dass Paginierung häufig eine gute Erfahrung ist. Hier ist ein Ausschnitt aus der Nielsen Norman Group:

Die Paginierung ist praktisch für Einträge wie E-Commerce-Kategorieseiten, Suchmaschinen-Ergebnisseiten (SERP), Artikelarchive und Fotogalerien. Hier besteht das Ziel eines Benutzers nicht darin, die vollständige Liste zu lesen, sondern ein bestimmtes Element zu finden und sich zu dieser Zielseite durchzuklicken.

Angenommen, Sie können die Listenelemente priorisieren, finden Benutzer wahrscheinlich ganz oben, was sie möchten. Um die Aufmerksamkeit der Benutzer zu lenken und die Reaktionszeit zu verbessern, können Sie zunächst eine relativ kurze Liste anzeigen und dann Paginierungsoptionen anbieten, um bei Bedarf weiter unten in der Liste voranzukommen.

- Paginierungseinstellungen der Benutzer und Alle anzeigen

Unendliches Scrollen kann auf E-Commerce-Websites besonders schlecht sein, wenn ein Benutzer häufig in Detailseiten eintaucht und sich zurückzieht. Hier ist ein Artikel, der auf einige Probleme mit der Technik hinweist: http://www.nngroup.com/articles/infinite-scrolling/

Ich selbst habe beim Einkaufen auf meinem Handy häufig unter dem Schmerz des unendlichen Bildlaufs gelitten. Denn wenn ich die Detailseite eines Produkts verlasse, wird die Seite der aufgelisteten Produkte aktualisiert und behält nicht den Seitenort bei, an dem ich mich zuvor befand. Normalerweise verlasse ich die Seite.

6
Michelle

Dies ist ein Problem der Skalierung, das bei der Datenvisualisierung häufig auftritt :) Ihre Y-Achse verfügt über Daten (Seitenzahlen), und im Idealfall möchten Sie alle Daten gleichzeitig anzeigen - dies passt jedoch nicht, sodass Sie skalieren es.

Wir skalieren normalerweise nach log (10), da dies eine der am einfachsten zu konzipierenden Transformationen für Menschen ist - Sie können jedoch jede Skalierungssequenz verwenden! Eine Möglichkeit, eine bestimmte Sequenz zu testen, besteht darin, Folgendes zu berechnen:

- The most clicks required to reach a page in list
- The mean clicks to reach any page in list
- The modal clicks to reach any page in list

Verwenden der Variablen:

 - Total number of pages
 - Number of options/jumps available to choose from
 - Scaling approach

Unterschiedliche Skalierungsansätze haben unterschiedliche Ergebnisse bei unterschiedlichen Listenlängen und unterschiedlicher Anzahl von Sprüngen. Die Berechnung dieser Bewertungen ist auch ein Problem für reisende Verkäufer, daher kann es schwierig werden, große Listen zu berechnen (wo diese Daten am nützlichsten wären). Trotzdem Spaß.

5
J.J

Es ist eine interessante Idee, aber die Verwendung der Fibonacci-Sequenz scheint ziemlich willkürlich. Unter der Annahme, dass der Benutzer ein bestimmtes Element finden möchte, das gleichmäßig über die Seiten verteilt ist, und über die Rangfolge des Elements Bescheid weiß, wäre der effizienteste Algorithmus ein binärer Suchalgorithmus. Daher wäre es besser, die folgende Paginierung zu verwenden:

LEFT MID RIGHT

Wenn Sie beispielsweise 64 Seiten hatten und einen Artikel auf Seite 42 haben wollten, zeigt die in Klammern gesetzte Nummer die aktuelle Seite des Benutzers an:

16 (32) 48 --> 40 (48) 56 --> 36 (40) 44 --> 42 (44) 46 --> 41 (42) 43.

Der Benutzer muss also nur 5 Seiten anzeigen, um seinen Artikel zu finden. Jedes Mal, wenn der Benutzer auf eine Seite weiter klickt, nehmen Sie diese Anweisung wörtlich und passen den Paginierungsbereich an. Ob dies für Mainstream-Anwendungen nützlich ist oder nicht, ist umstritten, aber es kann für bestimmte Aufgaben nützlich sein, Elemente zu finden. Sie können dies auch ganz einfach von der Anzeige von 3 Seiten auf n Seiten erweitern, indem Sie sie einheitlich auswählen.

2
Brendon

Wenn Sie eine Seite aus unserem üblichen Videoplayer nehmen, können Sie eine Schaltfläche zum schnellen Vor- und Zurückspulen hinzufügen, um schneller durch die Seiten zu navigieren. Aber Fibonacci? Macht für mich keinen Sinn.

enter image description here

2
Adnan Khan

Dies kann eine gute Idee sein, wenn Sie davon ausgehen, dass ein Benutzer zu Seiten wechseln und möglicherweise springen möchte. Trotzdem muss es keine Fibonacci-Sequenz sein. Sie können eine logarithmische Skala für jede Basis haben.

Aber in erster Linie denke ich, dass keine anderen Tasten als "vorherige" und "nächste" (oder Äquivalente) irgendeinen Sinn ergeben würden. Wenn Benutzer eine bestimmte Seite im Sinn hatten, zu der sie springen möchten, sollten sie diese in ein Eingabefeld eingeben, anstatt diese Seite durch aufeinanderfolgende Klicks auf Navigationsschaltflächen zu erreichen. Andernfalls (wenn ein Benutzer keine bestimmte Seite im Sinn hat) sollte der Benutzer daran interessiert sein, alle Seiten einzeln zu durchsuchen, und es ist nicht sinnvoll, bestimmte Seiten zu überspringen, also "vorher" und "weiter" reichen.

2
sawa

Ich habe auch das Gefühl, dass der Benutzer in der Lage sein muss, die gewünschte Seite mit der geringstmöglichen Anzahl von Schritten zu erreichen.

fibonacci-Zahlen sind cool, aber die geringstmögliche Anzahl von Schritten besteht darin, die Nummer der Seite zu ermitteln, die der Benutzer möchte, und dorthin zu springen.

Wenn ich weiß, dass sich etwas auf Seite 1512 befindet, würde ich das lieber tun, als eine binäre Suche mit Fibonacci-Zahlen zu spielen (tatsächlich würde ich versuchen, die Navigation zu umgehen, indem ich die URL ändere).

2
thanosqr

Sie können ein Dropdown-Menü verwenden (AKA ein Popup-Menü).

Dies gibt einen schnellen Hinweis auf die Größe der Ergebnismenge und ermöglicht es dem Benutzer, mit angemessener Leichtigkeit zur ersten, letzten und jeder Zwischenseite zu springen.

edinburghbicycle.com pagination

Dies ist von http://www.edinburghbicycle.com/browse/clothing/mens-clothing

Bei Benutzertests stellte ich fest, dass das Wichtigste darin bestand, massive Schaltflächen für Weiter/Zurück zu haben.

Lazy-Loading ist eine bessere Lösung - aber das ist leicht zu sagen ...

2
dave

Eine interessante Idee, aber wenn Sie Hunderte oder Tausende von Seiten haben möchten, wird das Durchsuchen aller Seiten wahrscheinlich eine unangenehme Erfahrung sein.

Der Zyniker in mir glaubt, dass der Anwendungsfall des Erstellers die Fähigkeit demonstrierte, eine häufige Programmierherausforderung beim Schreiben eines Algorithmus zu lösen, der die Fibonacci-Sequenz druckt.

1
drosenblatt

Wenn dies eine Paginierung für ein Suchergebnis ist, beachten Sie, dass sich die relevantesten Ergebnisse auf den ersten Seiten befinden (ich habe Google-Suchergebnisse nie wirklich über 2-3 hinaus paginiert). Die beste Erfahrung ist es also, die relevantesten Ergebnisse oben anzuzeigen und den Fokus auf die Paginierung niedrig zu halten.

Wenn Sie ein Archiv anzeigen, wird die Kategorisierung der einfachen Paginierung vorgezogen. Beispiel: Alphabetisch, nach Autor, zuletzt geändert, Tags usw., Hoffe, das hilft

0