Chcę zaktualizować moje płótno na każde żądanie AJAX, jeśli zostanie znaleziony nowy użytkownik lub nowe połączenie istniejących użytkowników.Zaktualizuj znacznik canvas HTML na każdym żądaniu AJAX z nowymi danymi
Mam użytkowników i połączeń między nimi:
var data=[
{
"Id": 38,
"Connections":[39,40],
"Name":"ABc"
},
{
"Id": 39,
"Connections":[40],
"Name":"pqr"
},
{
"Id": 40,
"Connections":[],
"Name":"lmn"
}]
w powyższym przykładzie użytkownik z Id:38
jest podłączony do user 39 and 40
i user 39 is connected to user 40 and user 40
jest już podłączony do user 39 and user 38 so user 40 Connection array is blank
.
Mam jedną usługę internetową, którą będę uruchamiać co 1-2 sekundy, aby wyświetlić nowo przyłączonych użytkowników na tej stronie i nowe połączenie między istniejącymi użytkownikami, które zapisałem w moim stole, a ta usługa internetowa pobierze wszystkich użytkowników wraz z ich znajomości.
Na początku moja strona zostanie załadowana, ale potem moja strona nie zostanie odświeżona, a nowi użytkownicy powinni zostać wyświetleni, a nowe połączenia powinny być połączone z połączeniem AJAX z moją usługą sieciową.
Ale z prośbą o ajax wszystko jest popsute. To jest JSBin I have created.
Wyjście Dostaję:
Mam tylko 4 użytkowników i 3 połączenia jak widać w moim wyjściu JSBin to powinno być tylko 4 prostokąty i nie jestem dodanie większej liczby użytkowników, ale nadal uzyskiwanie tego niechlujnego wyjścia.
Źródło Kod referencyjny: Reference Fiddle
Próbuję uzyskać dane wyjściowe, jak pokazano na powyższym skrzypce, ale nie dostaję.
Oczekiwany wyjście: 4 prostokąty z animacją
Updated Js bin Demo: Updated JSBin
Z wyżej zaktualizowanym JSBin jestem coraz to wyjście, ale nie są one ruchomej (animacja nie działa):
Czy usuwasz płótno między losowaniem? Wygląda na to, że dane wyjściowe z prostokątów będą występować między każdą aktualizacją. – DBS
@DBS, możesz rozwinąć –
Kiedy narysujesz coś na płótnie, poprzedni obraz pozostanie widoczny, chyba że samodzielnie wyczyścisz płótno. Tak więc wielokrotne narysowanie jednego z twoich identyfikatorów może wyglądać jak wiele kwadratów. Pomyśl o tym, jak dodawać nowe kwadraty do tego samego obrazu, zamiast tworzyć nowy obraz. Spróbuj wyczyścić go po uzyskaniu prośby o ajax, zanim narysujesz nowe kwadraty. – DBS