> 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

Antwort per Email an