2012-04-03 17 views
0

Ich habe mit YUI3 3.5pre5 DataTables gespielt und einen großen Unterschied in Implementierungen (von YUI2) realisiert.DataTables in YUI3 Aktualisierung bei jeder Aktualisierung/Änderung von Daten

Bei Verwendung von addRow(), modifyRow() and set() wird die gesamte Tabelle neu geladen/neu gezeichnet/aktualisiert und nicht nur die betroffenen Elemente.

Wenn beispielsweise eine Zeile hinzugefügt wird, wird die gesamte Tabelle neu gezeichnet, nicht nur die neue Zeile (wie in YUI2).

Dies ist ein echtes Problem, wenn Sie eine Menge Daten haben und alles neu gezeichnet wird, weil einige Zellen aktualisiert wurden. Oder wenn Sie die Daten alle x Sekunden aktualisieren müssen, wird die Tabelle ständig aktualisiert, was die Arbeit erschwert.

Ich hoffe, ich mache es falsch und es gibt einen Weg oder eine Abhilfe.

Bitte lassen Sie mich wissen, ob es eine Möglichkeit gibt, die neuen DataTables korrekt zu verhalten.

Danke!

Antwort

0

Sie machen es nicht falsch; Das ist der aktuelle Status des Codes. Ich werde Datenmutation optimieren -> UI in 3.6.0, und wie ich während 3.5.0 gemacht habe, werde ich ein Vorschau-Modul in der Galerie, die die neuesten Updates und Funktionen hat.

Es gab viele Leistungsverbesserungen, die ich in 3.5.0 bekommen wollte, denen ich aufgrund der Architektur- und Feature-Migration von 3.4.1 einfach nicht anpassen konnte.

In der Zwischenzeit, hier ein Patch ist, das helfen soll: https://gist.github.com/2295032

Hinweis, es ist nicht mit nodeFormatters kompatibel und andere Grenzfälle haben kann.

+0

Danke für Ihre schnelle Antwort !! Der Patch hilft definitiv beim Hinzufügen von Zeilen. Beim Aktualisieren einer einzelnen Zelle wird immer noch die gesamte Zeile aktualisiert. Glaubst du, es wird eine vollständige YUI2-ähnliche Implementierung für 3.6.0 geben? – Jonathan

+0

Das Isolieren der Zelle würde keine Änderungen an Spalten erfassen, die auf den Wert von Formatierern verweisen. Warum ist es so wichtig, das Update nur auf die Zelle zu beschränken? – Luke

+0

Wir entwickeln eine Finanzanwendung für Aktien, bei der die Werte jede Sekunde aktualisiert werden. Innerhalb der Tabelle befinden sich in jeder Zeile auch Schaltflächen, Kontrollkästchen, Kontrollkästchen und Eingaben, über die der Benutzer Werte ändern/aktualisieren/einfügen kann. Wenn der Benutzer irgendwie mit den Daten interagiert, wenn die Reihe aufgefrischt/neu gezeichnet wird, verliert er die Daten in den Eingaben, "fokussiert" auf Auswahlkästchen usw., usw. auch einige Ereignisse können nicht "feuern" ... Das ist Deshalb denke ich, dass es sehr wichtig ist, Daten so weit wie möglich zu isolieren. – Jonathan