d3.js speichert Zustände

9

Ich verwende D3.js , um ein paar Datensätze auf interaktive und dynamische Weise zu visualisieren. Benutzer können alle Diagramme durchsuchen und einzelne Ansichten der Daten abrufen, indem sie zusätzliche Daten und Ansichten kombinieren. Ich möchte, dass Benutzer ihren in den Daten gefundenen Schatz über mail , facebook usw. teilen können, aber in gewisser Weise könnte der neue Benutzer, der den freigegebenen "Schnappschuss" besucht, sich weiter mit der Erforschung der Daten befassen. Also muss ich

  1. behält den aktuellen Status meiner dynamischen Webseite
  2. bei
  3. kann diesen Zustand laden und anzeigen fast .
  4. bindet alle Ereignisse, die in dem Moment gebunden wurden, in dem der Benutzer-Snapshot
  5. erstellt wurde

Als so einfach wie möglich Beispiel (es wird verschiedene Graphen und viele Ereignisse geben), stellen Sie sich vor, Sie haben einen einfachen d3 Linegraph und

%Vor%

Diese neue dynamisch geladene Seite enthält d. h. mehrere svg s. Aber wenn ich einfach die Form und Position jedes SVGs speichere, könnte es schwierig sein, alle aktuellen Event-Bindungen im Auge zu behalten. Und wenn ich jede Aktion des früheren Benutzers speichere, wie könnte ich den Snapshot effizient neu laden?

    
Milla Well 23.08.2012, 10:52
quelle

1 Antwort

1
___ tag123javascript ___ JavaScript (nicht zu verwechseln mit Java) ist eine dynamische Sprache mit mehreren Paradigmen auf hoher Ebene, die sowohl für das clientseitige als auch für das serverseitige Scripting verwendet wird. Verwenden Sie dieses Tag für Fragen zu ECMAScript und seinen verschiedenen Dialekten / Implementierungen (außer ActionScript und Google-Apps-Script). ___ qstnhdr ___ d3.js speichert Zustände ___ tag123save ___ Zum Speichern (Daten) in einem Computer oder auf einem Speichergerät. ___ tag123jquery ___ jQuery ist eine beliebte Cross-Browser-JavaScript-Bibliothek, die das DOM-Traversal (Document Object Model), die Ereignisbehandlung, Animationen und AJAX-Interaktionen erleichtert, indem die Diskrepanzen zwischen Browsern minimiert werden. Eine mit jQuery gekennzeichnete Frage sollte mit jquery in Zusammenhang stehen, daher sollte jquery von dem fraglichen Code verwendet werden, und mindestens eine jquery-nutzungsbezogene Elemente müssen in der Frage enthalten sein. ___ qstntxt ___

Ich verwende %code% , um ein paar Datensätze auf interaktive und dynamische Weise zu visualisieren. Benutzer können alle Diagramme durchsuchen und einzelne Ansichten der Daten abrufen, indem sie zusätzliche Daten und Ansichten kombinieren. Ich möchte, dass Benutzer ihren in den Daten gefundenen Schatz über %code% , %code% usw. teilen können, aber in gewisser Weise könnte der neue Benutzer, der den freigegebenen "Schnappschuss" besucht, sich weiter mit der Erforschung der Daten befassen. Also muss ich

  1. behält den aktuellen Status meiner dynamischen Webseite
  2. bei
  3. kann diesen Zustand laden und anzeigen fast .
  4. bindet alle Ereignisse, die in dem Moment gebunden wurden, in dem der Benutzer-Snapshot
  5. erstellt wurde

Als so einfach wie möglich Beispiel (es wird verschiedene Graphen und viele Ereignisse geben), stellen Sie sich vor, Sie haben einen einfachen d3 Linegraph und

%Vor%

Diese neue dynamisch geladene Seite enthält d. h. mehrere %code% s. Aber wenn ich einfach die Form und Position jedes SVGs speichere, könnte es schwierig sein, alle aktuellen Event-Bindungen im Auge zu behalten. Und wenn ich jede Aktion des früheren Benutzers speichere, wie könnte ich den Snapshot effizient neu laden?

    
___ tag123d3js ___ Für Fragen zu D3.js selbst oder zu einem der vielen vorhandenen Plugins / Module. Außerdem, wenn Hilfe beim Erstellen von Visualisierungen mit D3.js benötigt wird. ___ tag123snapshot ___ Ein Snapshot ist der Zustand von etwas (z. B. ein Ordner) zu einem bestimmten Zeitpunkt. In diesem Fall bedeutet Snapshot den aktuellen Inhalt des Testzweiges, dies muss nicht die Hauptversion sein ___ antwort12200081 ___

Das Einfachste, was ich mir vorstellen kann, wäre ein Looping über alle Knoten, die ihre Identität und ihren Status als Hash speichern, dann diesen Hash als json mit Hilfe von ajax zurück an den Server zu senden und den Hash zusammen mit einem Schlüssel in eine Datenbank zu schreiben als URL an den Benutzer zurückgegeben. Wenn Sie die URL besuchen, laden Sie das Objekt d3js und durchlaufen den Hash, um den Status jedes Knotens so einzustellen, wie er war.

Um den Status der Knoten zu erhalten, wäre mehr Wissen in d3js erforderlich.

Welche Art von Daten zeigen Sie an? Sie sollten vielleicht ein Ereignisregister zu Ihrer js hinzufügen und alle ausgeführten Ereignisse aufzeichnen können. durch die Event-Caller.

zum Beispiel sagen, ich habe die folgenden Daten

%Vor%

Sie sollten und wollen die Knoten dieses Baumes per Mausklick ein- / ausblenden.

Du solltest so etwas machen können

%Vor%

Auf diese Weise sollten Sie mit so etwas enden

%Vor%

Sie haben also einen lagerfähigen Zustand! das kann ausgeführt werden.

    
___
Pablo Jomer 30.08.2012 15:11
quelle