Paul Tchistov

Először is azt kotorászott számos fórumon. A legtöbb felajánlotta, hogy az állam a külön oszlopban. De az én fa, több mint 400 ezer. Record, és ez egy újabb memória-felhasználás. Így mentem a másik irányba.

A probléma elemzése vezetett az alábbi következtetéseket:

  • meg kell tárolni listáját csak bővíteni a fasorok;
  • ha a vonal minimális, tárolja azt a listában már nincs szükség;
  • Listája telepített vezetékek fa tárolt ügyfél képest az egész fát általában nagyon kicsi;
  • ha van egy kijelölt vonal frissítése után a fa ki újra;
  • mert a frissítés után fa azonosítók DannyhFormyDerevo változtatni, meg kell irányítani.

típusú változó megfelelőségi került bevezetésre a kliens oldalon. Ez fogja a telepített vonalak egyedi értékek (a kulcs), és a sort azonosítók (az értékeket). A lényeg az, hogy nem tudja használni a gombokat, mint húrok azonosítókat. Mint korábban írtam, hogy változtatni a rendszer frissítése közben a fát, és lehetetlen, hogy befolyásolja.

Egy táblázat-vezérelt formában társított DerevomZnacheny, két esemény - PeredRazvorachivaniem () és PeredSvorachivaeniem (). Ezek az események tegye algoritmusok hozzáadása / eltávolítása adatok expand / fák.

Amikor megnyit egy űrlapot fa van töltve esetén automatikusan PriSozdaniiNaServere (), és összecsukott állapotában.

A felhasználó tudja frissíteni az adatokat, például egy gomb megnyomásával. Bemutatjuk egy szoftverfrissítés fa a kliens oldalon.

Adatok frissítése fa fut a szerver.

Röviden írja le, hogy mi történik. Igénylőlapot a hierarchia a könyvtár nómenklatúra és épít egy fa. Hogy kizárják az ismételt hozzáadás a fa a meglévő elemek, levágta a SootvetstvieNomenklaturyIStrokDereva. Szintén az út mentén kijutunk ilyen leveleket szülő fák az új elemet.

Ha a fa van kialakítva, amely egy tábla adatokkal vonalak telepített. Ez a rész fontos, hogy újjáépítsék a fa. Amikor az első épület elájult, mert nincs telepítve csomópontokat.

Ha a tábla jön létre, túlterhelés a fa formájában kellékek DerevoZnacheny. Ezután a módszer ObnovitTablitsuIdentifikatorovStrokDerevaNaServere () hajtogat kellékek DerevoZnacheny adatok (ez írja DannyeFormyDerevo), és keresi a tartományban fa TablitsaRazvernutyhStrokDereva asztalra. Ha nincs találat, akkor módosítsa azonosítók sorokban TablitsyRazvernutyhStrokDereva. Ha a felhasználó kiválasztott egy sorban, akkor is keres egy új identitást a sor, és emlékezni. A módszer ObnovitTablitsuIdentifikatorovStrokDerevaNaServere () van egy határ, amely akkor aktiválódik, ha a frissített azonosítókat összes telepített vonalak.

Ezután a vezérlés visszakerül ObnovitDerevoZnacheniyNaServere () eljárást. ahol az ügyfél változó megfelelő fa sor azonosítókat frissülnek élő adatokat. A fa-line ügyfél kibontakozni szerint lehetséges, megjelent egy sor fa frissítése befejeződött.

Az algoritmus önmagában is elég egyszerű, annak ellenére, hogy meglehetősen nagy mennyiségű kódot. Akkor tudja használni, minden fa. Elegendő meghatározni egy egyedi értéket minden egyes fák.

Kód működik túl gyorsan. Különösen a webes kliens számítógép átlagos termelékenysége 400.000 fa. Strings épült kb 2 percig, 40 másodperc átrendeződött.

Kapcsolódó cikkek