Ich möchte mein Canvas bei jeder AJAX-Anfrage aktualisieren, wenn ein neuer Benutzer gefunden wird oder eine neue Verbindung vorhandener Benutzer besteht.HTML-Canvas-Tag bei jeder AJAX-Anfrage mit neuen Daten aktualisieren
Ich habe Benutzer und Verbindungen zwischen ihnen:
var data=[
{
"Id": 38,
"Connections":[39,40],
"Name":"ABc"
},
{
"Id": 39,
"Connections":[40],
"Name":"pqr"
},
{
"Id": 40,
"Connections":[],
"Name":"lmn"
}]
Im obigen Beispiel Benutzer mit Id:38
-user 39 and 40
verbunden ist und user 39 is connected to user 40 and user 40
ist bereits user 39 and user 38 so user 40 Connection array is blank
verbunden.
Ich habe einen Webdienst, den ich alle 1-2 Sekunden feuern werde, um neu verbundene Benutzer auf dieser Seite anzuzeigen und neue Verbindung zwischen vorhandenen Benutzern, die ich in meiner Tabelle gespeichert habe, und dieser Webdienst wird alle Benutzer zusammen mit ihren abrufen Verbindungen.
Also zuerst wird meine Seite geladen, aber danach wird meine Seite nicht aktualisiert und neue Benutzer sollten angezeigt werden und neue Verbindungen sollten mit AJAX-Anruf zu meinem Web-Service verbunden werden.
Aber mit Ajax Anfrage wird alles durcheinander gebracht. Dies ist ein JSBin I have created.
Output Ich erhalte:
Ich habe nur 4 Benutzer und 3-Verbindungen, wie Sie in meiner JSBin Ausgabe sehen können, dann sollte es nur 4 Rechtecken sein, und ich bin das Hinzufügen nicht mehr Benutzer aber immer noch diese unordentliche Ausgabe bekommen.
Quellcode Referenz: Reference Fiddle
Ich versuche, die Ausgabe zu erhalten, wie in oben Geige gezeigt, aber nicht immer.
Erwartete Ausgabe: 4 Rechtecke mit Animation
Aktualisiert Js bin Demo: Updated JSBin
Mit oben aktualisiert JSBin ich diesen Ausgang bin immer aber sie bewegen sich nicht (Animation nicht funktioniert):
Leeren Sie die Leinwand zwischen den Draws? Diese Ausgabe sieht aus, als ob Sie die Rechtecke erhalten würden, die zwischen den einzelnen Aktualisierungen bestehen. – DBS
@DBS können Sie bitte erarbeiten –
Wenn Sie etwas auf einer Leinwand zeichnen, bleibt das vorherige Bild sichtbar, es sei denn, Sie löschen die Leinwand selbst. So kann das mehrfache Zeichnen eines Ihrer IDs als mehrere Quadrate erscheinen. Stellen Sie sich vor, Sie fügen einem neuen Bild neue Quadrate hinzu, anstatt ein neues Bild zu erstellen. Versuchen Sie es zu löschen, sobald Sie die Ajax-Anforderung erhalten haben, bevor Sie neue Quadrate zeichnen. – DBS