Für umfangreichere, komplexere oder dynamische Informationen wird dieser Ansatz allerdings ziemlich schnell recht ressourcenintensiv und schwierig zu pflegen, so dass man sich nach Alternativen umschauen muss. In diesem Artikel sollen drei prinzipiell unterschiedliche Ansätze vorgestellt werden:
- Clientseitig: Diese basieren vorrangig auf Funktionen, die auf der Seite des Clients bereitgestellt werden: Javascript, DHTML, DOM des Browsers etc.
- Serverseitig: Diese basieren vorrangig auf Funktionen, die auf Serverseite bereitgestellt werden: ASP, ASP.NET, Datenbanken etc.
- Kombinationen: Diese verbinden Funktionen von Server- und Clientseite, zum Beispiel könnte eine ASP-generierte XML-Datei auf Clientseite per JavaScript sortiert werden.
——————————————————————————–
Hinweise zum Demonstrationsbeispiel
Die Demonstrations-Dateien dieses Downloads sollten im selben Verzeichnis entpackt werden. Einige der Dateien erfordern einen ASP-Interpreter, ActiveX Controls oder andere serverseitige Websoftware.
——————————————————————————–
Clientseitig
Zuerst soll ein Blick auf clientseitige Möglichkeiten geworfen werden. Diese Beispiele erfordern, dass der Browser clientseitig Javascript aktiviert hat, was bei den meisten Browsern der Fall sein dürfte (siehe W3Schools Browser Survey). Einige der Beispiele nutzen auch Funktionen, die nur von bestimmten Browsern wie dem Internet Explorer oder Firefox unterstützt werden.
Javascript bringt von Hause aus eine Sortiermethode mit (SORT), welche eine Datenmenge sortieren kann. Wenn man die Daten als Array speichert, kann man sie mit einer Funktion, die der ähnlich ist, die in Demo 2 gezeigt wird, schnell sortieren. Wegen der einfachen Benutzung wird dafür ein Array von Objekten eingerichtet, wo jedes Objekt über zwei Eigenschaften verfügt: Vorname und Nachname (vergleiche Listing A).
Das Array personArray ist ein Array von Objekten und zunächst unsortiert. Nach Ausführen der Funktion buildIndex ist das Array alphabetisch nach Nachnamen sortiert (siehe Demo 2 im Download ).
Das eigentliche Sortieren erfolgt sehr schnell, aber was fängt man dann mit den sortierten Daten an? Sie müssen schließlich noch für die Anzeige aufbereitet werden, wofür es zwei einfache Methoden gibt:
Die erste besteht darin, im Query-String des Browsers einen Parameter zu übergeben, den die Javascript-Funktion beim Laden auswertet. Die Daten werden entsprechend sortiert. Dann muss man sie an der entsprechenden Stelle im Code nur noch ausdrucken (vergleiche Demo 3). Die zweite Option besteht darin, ein HTML-Element zu erstellen, welches per DHTML und Javascript mit den korrekt sortierten Daten gefüllt wird (vergleiche Demo 4).
Das erste Beispiel erfordert einen Post-Befehl zurück zum Server, um die aktuelle Seite erneut abzurufen und sie dann beim Laden zu sortieren. Das zweite Beispiel erledigt dies ohne Request an den Server und ist daher der bessere Ansatz. Diese Methode kommt vielfach zum Einsatz, zum Beispiel auf der Webseite Livelink Customisation Index.
Eine weitere Möglichkeit besteht darin, die Daten in einem anderen Format zu veröffentlichen (zum Beispiel Microsoft Excel), mit dem der Benutzer vertrauter ist und welches bessere Funktionen bietet, um die Daten zu sortieren. Ein Beispiel findet sich in Demo 5 (welches nur im Internet Explorer mit aktivierten Active X Controls funktioniert).
Neueste Kommentare
Noch keine Kommentare zu Effizientes Sortieren innerhalb von Tabellen
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.