Ich zeige die Liste der Elemente als unendlich versetzte Bildlaufliste mit manuellem Abruf des nächsten Teils an (nennen wir es eine „Seite“ in Anführungszeichen). Für jede dieser Entitäten besteht die Möglichkeit, dass der Benutzer verschiedene Filter (Datum, Teilzeichenfolge usw.) und Sortierungen darauf anwendet. Einige verfügen über eine voreingestellte komplizierte, nicht einfache Sortierung (z. B. überfällig oder wird in 2 Wochen überfällig sein + Priorität + Zeitstempel) im Backend, falls vom Benutzer keine einfache Sortierung angefordert wird.
Die Frage ist, wie die korrekte Reihenfolge der Elemente in der Benutzeroberfläche beim Hinzufügen oder Bearbeiten vorhandener Elemente beibehalten werden kann. Ich sehe im Allgemeinen zwei Optionen, wenn ich den Benutzer nicht zwingen möchte, zu der „Seite“ zu scrollen, auf der er/sie/sie das Element bearbeitet hat:
- Stellen Sie POST- und PATCH-Anfragen bereit, um Metadaten der Position des neuen/bearbeiteten Elements innerhalb der aktuellen Sortierung zurückzugeben, und fügen Sie das neue/bearbeitete Element in den Status (ich verwende React) basierend auf diesem Index ein, wenn seine Position auf einer der bereits abgerufenen „Seiten“ liegt.
Vorteile:- ziemlich einfach
- sehr nah an SSOT, da keine Manipulation am Frontend erfolgt
- relativ geringer Arbeitsaufwand am Backend
- Die Wahrscheinlichkeit, Elemente auf mehreren Geräten hinzuzufügen oder zu bearbeiten, ist sehr gering, aber nicht Null (die Ausleihen werden auf zwei Geräten gleichzeitig manipuliert, [z. B. wird dasselbe Konto von mehreren Familienmitgliedern verwendet]), und auf diese Weise kann es möglicherweise zu Duplikaten oder falschen Reihenfolgen kommen.
- Alle geladenen „Seiten“ erneut abrufen.
Vorteile:- sehr unkompliziert
- keine Duplikate und jederzeit korrekte Reihenfolge
- höhere Arbeitsbelastung im Backend, insbesondere wenn der Benutzer viel nach unten gescrollt hat
- konzeptionell ineffizient, wenn Positionen der Mehrheit Anzahl der Elemente blieb gleich
Gibt es eine andere mögliche Option, die ich übersehe?
- alle geladenen Seiten beibehält
- zeigt jederzeit die korrekte Reihenfolge an, auch wenn mehrere Geräte die Daten manipulieren
Mobile version