> Verzeichnisbaum). Irgendwer hatte mal neulich von > FreeThreadetDOMDocument gesprochen als L�sung gro�e > Verzeichnisb�ume darzustellen. Ideal ist ja ein Das war ich...
Als erstes: umfassende doku gibt es in der MSDNLib unter plattformSDK/data.../xml... Zur Einf�hrung in XML zieh Dir hiervon ein paar rein... http://www.aspin.com/home/tutorial/xml Sonstiges: Den xml-Baum w�rde ich im Application Object speichern, denn der bleibt f�r alle gleich und so muss dieser nur einmal, wenn die Application startet neue geladen werden.... Da macht es selbst nichts, wenn das laden eine minute dauert... Man muss bloss bei einem neustart des servers als erster auf die seite, damit der baum schon vorgecacht ist.. So sind im prinzip b�ume m�glich, die nur durch die gr�sse des speichers begrenzt sind... Ein anderes problem ist das speichern der navigationsdaten, bzw. welcher teilbaum ge�ffnet ist... Da reicht n�mlich nicht ein einfaches show.asp?open=4,7,9,12,3,23 Denn obwohl man den knoten IDs geben k�nnte: <root> <element id="1" name="ordner1" type="folder"> <element id="5" name="xml.doc" type="file"> </element> </element> <element id="2" name="ordner2" type="folder"> </element> <element id="3" name="ordner3" type="folder"> <element id="4" name="test.xml" type="file"> </element> </element> </root> Enth�lt eine ID keine Information �ber die Position des kotens im gesamt-Baum, d.h. wenn man so versucht auf den Knoten zuzugreifen: oDom.getSingleNode("//element[id='4']") Dann muss der gesamte Baum danach durchsucht werden... Man muss also immer den genauen Weg spezifizieren, dann ist das DOM sehr schnell, also: oDom.getSingleNode("/root/element[id='3']/element[id='4']") Das impliziert aber leider, das man bei f�r die information welcher knoten ge�ffnet ist eher sowas in den querystring schreiben muss: show.asp?open=2/4,7/13/8/4,9/12/3/23 Damit k�nnte aber der Querystring aber bald zu klein werden, weshalb es keine schlechte idee ist diese informationen woanders zu speichern, z.B. in einer Session und nur die �nderungen(Knoten x/y/z �ffnen; Knoten 1/2/3 schliessen) per Querystring zu schicken... ** Optimierungsm�glichkeiten: - wenn du die ID in Attribute packst, dann wird das suchen nach knoten �ber langsame string-compares gemacht... Das suchen nach elementnamen geht schneller, weil eine hash-Table von allen im XML-Dok vorhandenen Elementnamen angelegt wird, in der sie einer ID zugewiesen werden... Der Vergleich funktioniert dann �ber diese ID statt �ber strings... D.h. man sollte seine daten so speichern, statt wie in meinem ersten beispiel oben: <root> <element1 name="ordner1" type="folder"> <element5 name="xml.doc" type="file" /> </element> <element2 name="ordner2" type="folder" /> <element3 name="ordner3" type="folder"> <element4 name="test.xml" type="file" /> </element> </root> - dieses hierarchische selektieren funktioniert am besten, wenn an jedem verzweigungspunkt m�glichst wenige unterknoten zu durchsuchen sind, am besten max. 10... Wenn du sehr breite b�ume hast kannst du dieses selektieren verschnellern, wenn du nicht alle unterknoten direkt unter den parent steckst, sondern nach der letzten ziffer der id noch mal in unterschiedliche pseudo-unterordner packst: <root> <element5> <sub1> </sub1> <sub2> <element32 /> <element112 /> <element2 /> </sub2> <sub3> </sub3> <sub4> <element4 /> <element24 /> <element74 /> </sub4> <sub5> </sub5> .... ... </element5> </root> Hoffe das hilft dir ein wenig... Claudius | [aspdecoffeehouse] als [email protected] subscribed | http://www.aspgerman.com/archiv/aspdecoffeehouse/ = Listenarchiv | Sie k�nnen sich unter folgender URL an- und abmelden: | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdecoffeehouse.asp
