ws-page-size-selector lässt sich steuern, wie viele Treffer auf der Suchergebnisseite oder der Kategorieseite geladen werden. Je nach Modus kann der Kunde die Trefferanzahl pro Seite selbst wählen, per Button weitere Treffer nachladen oder beim Scrollen automatisch die nächsten Treffer angezeigt bekommen.
Drei Modi stehen zur Verfügung:
select: Auswahl der Trefferanzahl pro Seite über eine Dropdown-Liste. Das ist die Standarddarstellung.button: Ein Button lädt die nächsten Treffer und hängt sie an die Ergebnisliste an.infinite: Neue Treffer werden automatisch geladen, sobald der Kunde das Ende der Ergebnisliste erreicht (Infinite Scrolling).
button und infinite ersetzt die Komponente die klassische Blätternavigation. Eine ws-pagination ist dann nicht nötig.
Komponente
Die Komponente kann wie folgt auf der Kategorie- und Suchergebnisseite eingebunden werden: Select-Mode- Attribute:
options: Liste der verfügbaren Optionen für die Trefferanzahl pro Seite, beispielsweise[16, 32, 48, 64, 80]. Der Wert0erzeugt die Option „Alle anzeigen“, siehe Alle Treffer anzeigen.class: Ermöglicht es, dem Element selbst eine Klasse zuzuweisen.mode: Gibt an, wie die Darstellung erfolgen sollselect: Darstellung als Dropdown-Listeselect-class: Klasse für das erzeugte select-Element
button: Ein „Mehr anzeigen“-Button ohne Blätternlabel: Gibt den im Button vorhandenen Text anbtn-class: Klasse für den Button
infinite: Automatisches Nachladen beim Scrollen, siehe Infinite Scrollingscroll-offset: Abstand in Pixeln vor dem Ende von<ws-search-result>, ab dem das Nachladen startet. Default:300
page-size-all: Optional. Maximale Anzahl der Treffer, die über die Option „Alle anzeigen“ geladen werden. Default:10000page-size-all-label: Optional. Beschriftung der Option „Alle anzeigen“. Default:All
Alle Treffer anzeigen
Neben festen Trefferanzahlen kann die Auswahl eine Option enthalten, mit der sich alle Treffer auf einer Seite anzeigen lassen. Dafür wird im Attributoptions der Wert 0 ergänzt. Die Komponente stellt diesen Wert jedoch nicht als Zahl, sondern als Option „Alle anzeigen“ dar.
page-size-alllegt fest, wie viele Treffer bei „Alle anzeigen“ höchstens geladen werden. Ohne Angabe gilt der Wert10000.page-size-all-labellegt die Beschriftung der Option fest. Ohne Angabe lautet sieAll. Für deutschsprachige Shops sollte dieses Attribut daher gesetzt werden.
Die Anzahl der Treffer ist technisch auf 10.000 begrenzt. Dieses Limit wird von Elasticsearch vorgegeben. Auch ein höherer Wert in
page-size-all lädt deshalb höchstens 10.000 Treffer.page-size-all , wie beispielsweise 500 , sorgt dafür, dass die Seite reaktionsschnell bleibt.
Infinite Scrolling
Mit dem Modusinfinite lädt die Komponente neue Treffer, ohne dass der Kunde klicken muss. Dafür arbeitet der <ws-page-size-selector> als sogenannter Sentinel. Das ist ein unsichtbares Element mit einer Höhe von einem Pixel. Sobald es beim Scrollen in den sichtbaren Bereich gelangt, lädt die Komponente die nächsten Treffer und hängt sie an die Ergebnisliste an.
Damit das funktioniert, muss die Komponente direkt unter <ws-search-result> stehen. Nur dann liegt der Sentinel am Ende der Ergebnisliste und löst das Nachladen im richtigen Moment aus.
page-size von <ws-search> fest, genau wie im Modus button. Das Nachladen startet, sobald der Kunde 300 Pixel vor dem Ende der Ergebnisliste angelangt ist. So stehen die nächsten Treffer in der Regel bereits bereit, bevor der Kunde das Ende erreicht hat. Mit einem größeren scroll-offset startet das Nachladen früher.
