Aber was ist denn nun das schlechte an Frames? Wo liegen die Probleme?
Frames haben ihre Berechtigung, absolut! Aber sie müssen von der Situation her passen. Wenn es nur darum geht, sich weniger Arbeit machen zu wollen, weil man nicht in alle Seiten die Navigation einfügen will (und auch alle Seiten ändern muß, weil sich die Navigation geändert hat), dann sind Frames sicher nicht unbedingt gerechtfertigt.
Das Problem ist: Ich würde die Nützlichkeit von Frames stark von der vorhandenen Nutzsituation abhängig machen, deshalb fällt die Antwort schwer, ob Frames gut oder schlecht sind.
Wenn ich im Internet recherchiere und eine gute Seite mit nützlichen Informationen finde, wie z.B. SelfHTML, dann möchte ich vielleicht nicht nur ein Bookmark auf die Startseite setzen (http://selfhtml.teamone.de), sondern vielleicht zwecks besserem Zugriff auch noch auf die Objektreferenz von Javascript, weil ich die häufig brauche (http://selfhtml.teamone.de/javascript/objekte/index.htm), und für die ganz harten Fälle hier im Forum brauche ich auch noch den Link zum ZweiFrames-Skript (http://selfhtml.teamone.de/javascript/beispiele/zweiframes.htm).
Hingegen ist es mir völlig gleichgültig, daß meine Online-Bank Frames verwendet: Ich muß ohnehin auf die Startseite, um mich einzuloggen, also fällt dieses Argument weg. Und da die Seiten dort auch ohne ZweiFrames-Skript funktionieren (ein Klick auf einen Menüpunkt bringt mir entweder den Kontostand im Hauptframe, oder lädt mir das Wertpapierhandelsmenü im Naviframe), ist es also absolut kein Bedienungsproblem. Und da alle Seiten auch einen Link zu einer Druckversion haben, die im Popupfenster geöffnet wird und frameslos ist (und weniger bunt, was meinem Schwarzweiß-Laserdrucker gefällt), kann ich auch das gut erledigen (wobei die monatlichen Kontoauszüge ohnehin als PDF kommen, also muß ich im Prinzip garnichts drucken).
Es hängt also vom Anwendungsfall ab. Man sollte wissen, welche Nachteile Frames haben, und welche Vorteile sie für die Entwicklung und Darstellung der Website bieten, und das gegeneinander abwägen.
Und gibt es eine Möglichkeit, (jetz ohne Frames) in verschiedenen Dateien gleichbleibende Dinge (headline, Menü, etc) beizubehalten und nur das andere zu ändern (also das Menü, etc muss nicht neu geladen werden, nur der Inhalt der Seite wird geändert)
-
Du kannst das immer gleiche Navigationsmenü per Hand in jede einzelne HTML-Datei eintragen. Änderungen sind in jeder Datei einzeln durchzuführen (aber kopieren funktioniert natürlich auch, wenn sonst keine Anpassungen notwendig sind).
-
Du kannst einen Editor beauftragen, diese Aktualisierung automatisch durchzuführen. Du bearbeitest also "die Navi-Datei", welche sich in ihrer Form an eine bestimmte Stelle in den Seiten einfügen läßt (das ist dann keine komplette HTML-Datei mehr, wie sie im Frameset benötigt würde), und läßt den Editor alle Dateien aktualisieren. Phase 5 (http://www.meybohm.de) leistet sowas mit den "Include-Dateien".
-
Du benutzt SSI (Server Side Includes). Damit kannst du das Zusammenfügen der HTML-Fragmente zu einer kompletten Datei auf dem Server erledigen lassen und mußt nur noch die geänderte Navi-Datei hochladen, nicht mehr alle HTML-Dateien (wie in 1) und 2) notwendig). Nachteil: SSI ist eine Sonderfunktion des Servers, und nicht jeder Webspace hat diese Möglichkeit.
-
Du benutzt eine serverseitige Programmiersprache wie ASP, PHP, JSP etc, um die Navigation dynamisch in die Seiten zu integrieren. Das kann vom schlichten Zusammensetzen einer festen Datei (genau wie bei SSI) bis hin zum programmierten Einfügen gehen, bei dem die aktive Seite automatisch hervorgehoben wird. Diese serverseitigen Sprachen sind aber genau wie SSI eine Sonderfunktion, die nicht bei jedem Webspace dabei ist.
Was allen vier Lösungen gleich ist: Du erzeugst in allen Fällen eine HTML-Datei, welche in irgendeiner Weise Platz für den Inhalt und die Navigation hat - du mußt dich nur entscheiden, wie das aussehen soll, und dann aus einer Vorlage die passenden Einzelteile schneiden und im Live-Betrieb wieder korrekt zusammensetzen.
Ob du nun Tabellen oder Layer nimmst, ist erstmal egal. Layer bieten allerdings in Verbindung mit Stylesheets die Möglichkeit, durch die CSS-Anweisung position:fixed eine dauerhafte, feste Position auf dem Bildschirm einzunehmen und dadurch, genau wie bei Frames, immer sichtbar zu sein. Der IE kann das leider noch nicht, da scrollt der Layer mit. Und Mozilla hat derzeit wohl noch ein paar Geschwindigkeitsprobleme, wenn bewegter und fester Inhalt überlappt (was aber kein Hinderungsgrund sein sollte).
- Sven Rautenberg