2009-08-10 8 views
1

Ich implementiere derzeit eine YUI-Datentabelle als wiederverwendbaren Viewer, um Verkaufsberichte (und andere solche Dinge) für den internen Gebrauch anzuzeigen. Das Problem ist, dass viele dieser Berichte bis zu mehr als 1000 Zeilen lang sind und die clientseitige Leistung auf noch neueren, schnelleren Computern zum Problem wird.YUI-Datatable und große Datensätze ohne Seitennummerierung

Aus verschiedenen Gründen ist die serverseitige Paginierung für uns keine Option (vor allem, weil es beim Exportieren eines Berichts in eine Tabelle problematisch ist - Sie möchten nicht dieselben paginierten Ergebnisse erhalten).

Also meine Frage ist .. auf welche Weise kann ich Leistung auf einem YUI Datatable erhöhen, ohne auf serverseitige Paginierung zurückgreifen zu müssen?

+3

1000+ Zeilen werden auf jedem Browser auf jeder Maschine schwierig sein .... – BigBlondeViking

Antwort

4

Was Sie wollen, ist client side pagination. Die größte Auswirkung, die DataTable auf die Benutzeroberfläche hat, befindet sich in der Render-Phase. Tabellen sind für Browser sehr kompliziert, um sie selbst darzustellen. Fügen Sie alle dynamischen Funktionen hinzu, die in DT verfügbar sind, und Sie können eine echte UI-Verzögerung sehen.

Senden Sie alle Ihre Daten an den Client. Mit der Seitennumerierung auf der Clientseite ist die Benutzeroberfläche reaktionsfähiger und benutzerfreundlicher.

Wenn dies keine Option ist, configure renderLoopSize auf etwa 200 oder 300. Dadurch wird die Ausgabe der Zeilen auf 200 oder 300 auf einmal aufgeteilt, wodurch die Anzahl der Reflows, die Ihre Seite erleiden wird, begrenzt wird.

4
+0

Interessant .. Ich habe diesen Tweak implementiert - scheint die Leistung ein wenig zu verbessern. Es scheint zu brechen InitialLoad: false .. –

1

Vielleicht könnten Sie noch Paginierung verwenden, wenn Ergebnis für einen Benutzer, und wenn es um den Export wird es laden alle noch nicht Zeilen geladen?

+0

Ich denke daran, dies auch zu versuchen .. Ich bin nicht übermäßig aufgeregt über die Idee, nicht alle meine Ergebnisse in einem Bildschirm, aber wenn ich nicht bessere Leistung ohne Paginierung bekommen kann, Möglicherweise muss ich auf die Kundenseitenumsetzung zurückgreifen. –

Verwandte Themen