Ich verwende dc.js, um ein schönes Blasendiagramm eines Datasets zu rendern. Basiswert dc.js ist crossfilter.Ersetzen Sie Crossfilter-Daten, Wiederherstellen von Dimensionen und Gruppen
Ich möchte mein Diagramm mit neuen Daten vom Server reibungslos aktualisieren. This issue on Github macht deutlich, dass es möglich ist, diese durch zu tun:
- alle Daten aus dem crossfilter Löschen
- in den neuen Daten hinzugefügt
- Aufruf
dc.redrawAll()
.
Ich habe diese Arbeit bekam aber, um alle Daten zu löschen, müssen Sie zunächst alle Filter entfernen haben (weil crossfilter.remove
nur die Datensätze entfernt den aktuellen Filter entsprechen).
Ich möchte mich daran erinnern, wie meine Daten zuvor gefiltert wurden, so dass ich den Filter wieder rekonstruieren kann, sobald ich alle Daten ersetzt habe. Ich bin bereit, in die Eingeweide des Codes zu kommen, aber alle Hinweise wären hilfreich.
Zusätzlich: Wenn jemand einen Weg der Aktualisierung von Crossfilter-Daten auf Basis eines eindeutigen Schlüssels kennt, wäre das Goldstaub!
Fügen Sie nur Daten hinzu? Dann würde ich sagen crossfilter.add ([Daten]) verwenden. Wenn Sie auch Daten entfernen müssen, habe ich nicht viel zu bieten, aber Sie sollten sich vielleicht dieses Problem ansehen und kommentieren, wenn es nach der richtigen Richtung klingt: https://github.com/square/crossfilter/issues/109 –
@EthanJewitt Ich füge * oder * keine Daten hinzu. Ich aktualisiere vorhandene Daten, jede Zeile eindeutig verschlüsselt. Oder hat "hinzufügen" die Möglichkeit, basierend auf einem Schlüssel zu aktualisieren? – LondonRob
Gotcha - dann müssen Sie die alten Daten entfernen und neue Daten hinzufügen (keine Möglichkeit, vorhandene Schlüssel zu aktualisieren, soweit ich weiß). Diese Fähigkeit existiert im Moment nicht wirklich, da Sie alle Filter entfernen müssen, um Ihre Daten zu entfernen. Ich persönlich denke, das ist etwas, das in Crossfilter angesprochen werden muss, und es gibt einige Diskussionen darüber, wie man damit umgehen kann, aber ich glaube nicht, dass irgendjemand Zeit hatte, damit umzugehen. –