1)co się stanie gdy "puszczę" rysowanie wykresu - czyli zapuszczę cyklicznego ajaxa, który z bazy pobiera ewentualne zmiany stanu i dorysowuje coraz to kolejny odcinek - czy istnieje możliwość przepełnienia np tablicy, zbierającej punkty [x,y] przepełnienia canvasa czy vml-a? Czy gdy na canvasie będzie np 1000 czy 100000 wyrysowanych odcinków to czy będzie to problem dla wydajności?
Wiem, że to jest w jakims stopniu uzależnione od sprzetu klienta, ale czy można sprzętowi jakoś ulżyć
2)odświerzanie wykresu np przy przesuwaniu, pomniejszaniu, powiększaniu. Gdy tworzę na canvasie linie złożoną z n-odcinków to mi ją zamyka (nie wiem co robię źle) no to tworzę na razie linię jednoodcinkowe. Czy to jest jakiś problem wydajnościowy, czy lepiej tworzyć linie wieloodcinowe, czy nie ma różnicy dla wydajności? i jak zrobić żeby nie zamykało
3)jako, że danych może być sporo to jak sprawdzić czy JS uciągnie, np mam tablicę, a właściwie strukturę wyglądającą mniej wiecej tak
Kod
obiekty = new Array();
obiekty[i] = new Object;
obiekty[i].id = id;//jakieś id obiektu z bazy - aby można było np po kliku przesłac i pobrac jakieś
obiekty[i].kolor = kolor;
obiekty[i].punkt = new Array();
obiekty[i].punkt[j] = new Object;
obiekty[i].punkt[j].x = x;
obiekty[i].punkt[j].y = x;
//jako że punkty przychodzą po ID, a nie zawsze każdy obiekt się zmienia, a przychodzą te które się zmieniły to zrobiłem tablicę powiązań
powiazania = new Array();
powiazania[id]=i;//id -> id obiektu w bazie. i -> indeks w tablicy obiekty
//dzięki temu jak cos przychodzi mogę zrobić tak - np dodac nowy punkt
obiekty[powiazania[i]] .punkty[/*OBECNA DLUGOSĆ TABLICY*/]=new Object();
obiekty[powiazania[i]] .punkty[/*OBECNA DLUGOSĆ TABLICY*/].x=y;
obiekty[powiazania[i]] .punkty[/*OBECNA DLUGOSĆ TABLICY*/].y=x;
obiekty[i] = new Object;
obiekty[i].id = id;//jakieś id obiektu z bazy - aby można było np po kliku przesłac i pobrac jakieś
obiekty[i].kolor = kolor;
obiekty[i].punkt = new Array();
obiekty[i].punkt[j] = new Object;
obiekty[i].punkt[j].x = x;
obiekty[i].punkt[j].y = x;
//jako że punkty przychodzą po ID, a nie zawsze każdy obiekt się zmienia, a przychodzą te które się zmieniły to zrobiłem tablicę powiązań
powiazania = new Array();
powiazania[id]=i;//id -> id obiektu w bazie. i -> indeks w tablicy obiekty
//dzięki temu jak cos przychodzi mogę zrobić tak - np dodac nowy punkt
obiekty[powiazania[i]] .punkty[/*OBECNA DLUGOSĆ TABLICY*/]=new Object();
obiekty[powiazania[i]] .punkty[/*OBECNA DLUGOSĆ TABLICY*/].x=y;
obiekty[powiazania[i]] .punkty[/*OBECNA DLUGOSĆ TABLICY*/].y=x;
czy taka organizacja jest wydajna - czy mozna to jeszcze zoptymalizować poprzez inną organizację
no i ile tego może sie pomieścić np - ktoś sobie zapuszcza to na cały dzień i mu się uzbiera np 100MB, albo i 500MB - nie wiem czy to jest moziwe, czy to jest realne, dlatego pytam