Probleme beim Hinzufügen und Entfernen von Knoten in einem Force-Layout mit d3.js

Ich versuche, die Serververfügbarkeit (und später andere Dinge, sobald dies funktioniert) durch Abrufen von Daten von der Zabbix-API zu visualisieren. Ein Beispiel dafür, wie die zurückgegebenen Daten [hier] [1] aussehen, finden Sie in der Zabbix-API-Dokumentation.

Das Abrufen der Daten ist nicht das Problem, aber ich habe einige Probleme mit der Datenverbindung von d3.js. Ich denke, oder eher, wie ich das tun soll.

Nach dem Abrufen der Daten erhalte ich eine Reihe von Servern, die alphabetisch sortiert sind, und ich möchte, dass die neuen Server angezeigt werden, die entfernten einfach verschwinden und alle Änderungen in der Verfügbarkeit (oder auf andere Weise - in der Zukunft) mit Farbe oder was auch immer ich widerspiegeln könnte denken.

Der Punkt ist, dass das Diagramm nicht neu initialisiert werden sollte, sondern nur durch Hinzufügen oder Entfernen von Knoten aktualisiert werden sollte.

Mit welchem ​​Teil habe ich Probleme? Ich habe es geschafft, der Liste immer mehr Knoten hinzuzufügen (nie zu löschen). Ich habe es geschafft, sie jedes Mal zum "Neuzeichnen" zu bringen, wenn ich neue Daten abrufe, dh alle Knoten werden erneut hinzugefügt und rasten wie sie in der Mitte ein Tun Sie dies zuerst, wenn Sie die Seite laden.

Und die dritte, die dazu geführt hat, dass alle Knoten in der oberen linken Ecke stecken geblieben sind.

Letzteres ist der aktuelle Stand meines Codes.

Ich bin mir ein bisschen unsicher, was ich an diesem Punkt falsch machediese das scheint ziemlich nah an dem zu sein, was ich brauche, ohne die links trotzdem (vorerst). Das funktioniert gut, und ich habe versucht, dieses Verhalten in meinem Code zu replizieren, aber es funktioniert nicht.

Ich würde es begrüßen, wenn jemand ein paar Hinweise für mich hätte, das wäre großartig. Ich habe in der letzten Woche bei der Arbeit damit gespielt, ohne viel weiter zu kommen :)

Vielen Dank!

Da ich bei der Arbeit nur Zugriff auf Zabbix habe, kann ich die Dinge wirklich nur in der Zeitspanne von 16 bis 21 Uhr MEZ testen, die heute noch ca. 4 bis 21 Stunden beträgt. Wenn jemand während der Nacht irgendwelche Vorschläge hat, werde ich es morgen ausprobieren: D

Mein Code auf GitHub befindet sich in einem Link unterhalb meines Posts, da dieser Mangel an Ruf auf dieser Site mich in eine düstere Lücke versetzt hat, in der ich meinem Post nur zwei Links hinzufügen kann.

Warum ist das nicht global? Ich habe mehr als 10 Mitarbeiter auf anderen SE-Sites.

Bearbeiten:

Immer noch Probleme, jedes Mal, wenn die Daten aktualisiert werden, "geben" die Kreise wie beim ersten Laden ein:http://mbostock.github.com/d3/talk/20111018/collision.html Keine Ahnung was jetzt zu tun ist: /

Antworten auf die Frage(1)

Ihre Antwort auf die Frage