Hallo Flo Am Dienstag, 5. März 2002 21:23 schrieb Florian Gross:
* Dennis Boller
textete am 05.03.02: "Markus Schiefer" wrote:
IMHO gibt es keine Möglichkeit, mit reinem HTML 2 Frames gleichzeitig zu ändern, es sei denn, Du machst Dir die Mühe, gleich ein neues Frameset zu laden, was je nach Umfang der Seite ganz schön ausarten kann.
Habe das eben gerade getestet: So viel größer wird der Umfang nicht. Ich rufe mit dem Link einfach eine "neue" indexhtml auf (Größe etwa 400 Byte), und die startet dann Navigator und Textseite.
Aber die Ladezeiten leiden doch extrem darunter. Das merke ich, obwohl die Daten auf der Platte liegen und nicht im Netz.
Ich wollte auch mal sowas wie du machen. Allerdings wirst du feststellen, daß das bei vielen Seiten nicht wirklich toll ist. Ich hatte vorher schon >100 Seiten und auf einmal ca. 180... Jetzt baue ich alles komplett neu auf, ohne Frames, JavaScript usw. Ist IMO besser und schneller.
Wenn du auf Frames verzichten willst/mußt[1], kannst du in jede Seite eine Tabelle am linken Rand einfügen, in der sich die Navigation befindet. Die bleibt halt nicht stehen sondern wird mitgescrollt. Bei langen Seiten kannst du die Tabelle auch mehrmals untereinander einfügen, verlängert die Ladezeit nicht allzu dramatisch. Und bei der Darstellung sollte sich das zeitlich kaum bemerkbar machen[2], ob da eine Tabelle einmal oder mehrmals auf einer Seite ist. Bei meinem 486er mit 8MB RAM fiel es jedenfalls nicht sonderlich auf.
[1] weil unpraktikabel [2] ist IIRC so ähnlich wie bei Grafiken innerhalb einer Seite, muß nur einmal berechnet werden. Bei Grafiken liegt es daran, dass man eine Source angibt, aus der die Grafik geladen wird. Der Browser erkennt, dass er die gleiche Source schon einmal geladen hat und bezieht sie nicht noch einmal neu. Bei Tabellen geht das nicht, weil dort keine Sourcen angeben werden also z.B.<table src="tab.tab"> dann würde es auch mit Tabellen und jedem anderen Content klappen. Wenn Du aber auch die Tabellen in eine separate Datei ausgliederst, kannst Du sie mit PHP in ähnlicher Form mit einbinden: include("tabelleDrei.tab"); Wenn Du wirklich über 100 Seiten hast, dann solltest Du es ernsthaft in Erwägung ziehen, dieses mal zu testen. Für ein Teures CMS lohnt es vielleicht noch nicht, aber irgendwie solltest Du den Content vom Code
Das geht mit CSS auch ganz elegant. Du kannst einen Layer mit den Navigationslinks definieren und diesen an einer bestimmten Position im Fenster fixieren. Er bleibt da dann so stehen, während die übrige Seite darunter gescrollt wird. Die beste Lösung, gerade bei einer so hohen Zahl von Seiten, wie von Dir angegeben ist es die Seite zu zerlegen und entweder mit PHP oder SHTML wieder zusammenzusetzen: Du hast dann z.B. die Dateien -head.php //der Header und z.B Seitenkopf-Tabelle und Banner -navig.php //die linke (oder rechte) Navigationstabelle footer.php //der Seiten-Fuss All der Code, der auf jeder Seite benötig wird, wird in diese Dateien aufgeteilt und dann in die Contentseiten eingebunden: Beispiel: <? include("head.php"); include("navig.php"); Seiten-Content und viel BlaBla mit bunten Bildern include("footer.php"); ?> So kann dann jede Content-Seite aussehen, spart ne Menge Arbeit und garantiert, dass man nichts vergisst und die Seiten alle die gleiche Optik haben. mit SHTML gehts im Prinzip genauso, die Syntax sieht ein kleines bischen anders aus. trennen, um die Geschichte leichter handhaben zu können. CU Thorsten -- Thorsten Körner || thorstenkoerner@123tkshop.org Dannenkoppel 51 || thorstenkoerner@thorsti.org 22391 Hamburg || GNU-GPG Key: 2D2C4868C007C4FA http://www.123tkShop.org || reg. Linux-User:#187283