• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

"ViewState" einer Seite speichern

BerndPodhradsky

New member
Hallo!

Ich habe folgendes Problem und hoffe, ihr könnt mir ein paar Anregungen geben.

Die Homepage soll eine Online-Hilfe darstellen, die aus ca. 3.000 Begriffen besteht. Ich habe meinen eigenen TreeView gebastelt, der mit jedem Klick auf einen Knoten die DISPLAY-Eigenschaft des darunterliegenden SPAN-Objekts ändert (damit der TreeView auf- bzw. zuklappbar ist).

Dies funktioniert einwandfrei, jedoch kommt es zu folgendem Problem: Man öffnet das Inhaltsverzeichnis und klappt den TreeView auf. Dann klickt man auf einen Eintrag und eine neue Seite wird geladen. Wenn ich jetzt wieder auf die Inhaltsverzeichnisseite zurückgehe, ist der TreeView wieder zugeklappt.

Wie kann man dies am besten (client-seitig, also kein ASP, PHP etc.) verhindern? Ich habe es per Java-Script probiert (sprich: einfach den Status jeden TreeView-Knotens über eine Schleife abgespeichert und beim Laden der Seite wiederhergestellt), was aber sehr langsam ist.

Any ideas?

Danke!

Liebe Grüße,
Bernd
 
Hallo!

Stichwort Cookie. Wenn du das richtig machst, sollte es nicht besonders langsam sein.

Bis jetzt mache ich es mit einem Cookie. Was so lange dauert, ist das iterieren durch die einzelnen Knoten (SPANs) und das Abfragen der Display-Eigenschaft derselbigen.

Ich fahre mit einer Schleife also über alle SPANs und wenn der Knoten expanded ist, speichere ich dessen ID ab. Das dauert sehr lange.

Interessanterweise im Mozilla Firefox wesentlich kürzer als im IE.

Liebe Grüße,
Bernd
 
3000 Knoten sollten eigentlich nicht so problematisch sein.

Die einzige Alternative die mir in den Sinn kommt, wäre Ajax. Damit kannst du verhindern, dass die Seite neu geladen wird. Das Inhaltsverzechnis kannst du wenn es nicht benötigt wird einfach ausblenden.
 
Hallo!



Bis jetzt mache ich es mit einem Cookie. Was so lange dauert, ist das iterieren durch die einzelnen Knoten (SPANs) und das Abfragen der Display-Eigenschaft derselbigen.

Ich fahre mit einer Schleife also über alle SPANs und wenn der Knoten expanded ist, speichere ich dessen ID ab. Das dauert sehr lange.
Du weißt doch in dem Moment wo darauf geklickt wird ob der Knoten "expanded" ist, wieos musst du nochmal alle prüfen?
 
Hallo!

Du weißt doch in dem Moment wo darauf geklickt wird ob der Knoten "expanded" ist, wieos musst du nochmal alle prüfen?

Der Tipp ist grandios, danke.

Wenn ich das richtig verstehe meinst du also, dass es so ablaufen sollte:

Beim Öffnen der Seite:
.) Cookie durchgehen und alle dort eingetragenen IDs expanden

Beim Klick eines Knotens:
.) Wenn der Knoten expanded wird, diesen in den Cookie eintragen (falls noch nicht dort vorhanden) bzw. wenn er collapsed wird dort austragen

Sonst noch einige Ansätze?

Liebe Grüße,
Bernd
 
Wie wäre es denn nur jeweils einen Child-Knoten aufgehen zu lassen? Wenn der Benutzer einen anderen Zweig öffnet, schließt sich der erste automatisch.
Das reduziert die Anzahl der zu öffnenden Zweige von n auf 1. Wobei hier dennoch alle Elternknoten mit geöffnet werden müssen, aber eben nur für einen Pfad.
 
Zurück
Oben