Wie kann ich die Leistung der Richfaces ScrollableDataTable Kontrolle zu verbessern?

StackOverflow https://stackoverflow.com/questions/86171

  •  01-07-2019
  •  | 
  •  

Frage

Zuerst ein wenig Hintergrund:

Ich bin ein Datensatz mit 288 Zeilen anzeigt und 8 Spalten (2304 Datensätze) mit einem ScrollableDataTable und die Leistung lässt viel zu wünschen übrig. Eine AJAX Anforderung, die die Steuerung übernimmt, fast 20 Sekunden rerenders abgeschlossen ist, im Vergleich zu 7 Sekunden, wenn die gleichen Daten Rendern einer Datentabelle Steuerung.

Metrics über Servlet-Filter und JavaScript zeigen erfasst, die praktisch alle der Verarbeitungszeit auf der Client-Seite ausgegeben wird. Aus einer 19,87 Sekunden Anfrage werden 3,87 Sekunden auf dem Server ausgegeben ... mit weniger als 0,6 Sekunde ausgegeben abfragt und die Daten zu sortieren.

Der Wechsel zu einer Datatable-Steuerung schneidet die Anfrage, Antwort und macht Zyklus bis zu 1/3 von dem, was ich mit dem ScrollableDataTable bin zu sehen, sondern entfernt auch einige wichtigen Funktionen.

Und nun die Frage:

Hat sonst noch jemand erfahrenen Performance-Probleme mit dem ScrollableDataTable? Was ist der effizienteste Weg, um große Mengen von tabellarischen Daten in JSF / Richfaces mit fixierten Spalten und zweiachsigen Scrollen zu machen?

Update:

Am Ende haben wir eine eigene Kontrolle zu schreiben. Volle Kontrolle über die erbrachten Komponenten und erzeugt JavaScript erlaubt uns vergleichbar mit der Datatable eine Reaktionszeit erreichen. Ich stimme mit Zack obwohl - Paginierung ist die richtige Antwort

.
War es hilfreich?

Lösung

Der Engpass ist am ehesten in der „Render Response“ Phase des JSF-Lebenszyklus. Es wird versucht, auf einmal zu viele Komponenten für die Ansicht zu machen.

Mein Vorschlag ist, Paginierung zu verwenden. Es sollte Ihre Leistung erheblich steigern, da sie zu einem Zeitpunkt, kleinere Portionen der Ansicht Rendering wird.

Seien Sie sicher, dass Ihre rich:dataTable die rows Eigenschaft festgelegt ist und auch - wenn Sie irgendeine Spalte Filterung tun -. Stellen Sie sicher, dass das Datum Tabelle auch die Eigenschaft reRender="paginator" hat, wo paginator Ihre rich:datascroller ist

Andere Tipps

Ich hatte ähnliche Probleme schon vor langer Zeit und am Ende ein Applets Schreiben die Daten anzuzeigen, die mit der Seite mit Livescript interagierten. Meine Performance-Probleme waren die gleichen wie das, was Sie sahen. Der Kunde hat mehr als 30 Sekunden, um die Tabellendaten zu machen, und der Server drehte meine Antwort um in weniger als 2 Sekunden.

Das klingt wie ein Fehler in der Javascript erzeugt die Tabelle zu machen. Haben Sie die Seite in verschiedenen Browsern ausprobiert? Welche JSF Implementierung verwenden Sie (RI oder MyFaces oder etwas anderes)?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top