Liebes Forum,
wenn man sich ein bisschen die Beiträge liest und man dann ein Beitrag liest, in dem jemand ein Problem mit Frames hat, dann kommt meistens: Frames sind veraltet! Mach es mit CSS!
Deshalb stelle ich mir die Frage, weshalb das Frames veraltet sind und durch CSS ersetzt werden sollen?
Freue mich auf Antworten!
Hi,
ich hab mal schnell gegoogelt:
Frames - Warum Sie keine Frames einsetzen sollten - Online lernen bei akademie.de
http://www.subotnik.net/html/frames.html
T02
Hallo bidu,
ich versuche Dir mal zu antworten. Also Frames wurden zu einer Zeit genutzt, als es noch keine/kaum Möglichkeiten gab, eine Webseite in verschiedene, immer wiederkehrende, Bereiche zu unterteilen. Statt Frames wurden auch Tabellen zum Ausrichten von einzelnen Inhaltsteilen einer Webseite benutzt. Beides ist nicht mehr Stand der aktuellen Technik. Neben der Positionierung einzelner Inhaltsbereiche mit Frames, wurden Frames auch genutz, um immer wiederkehrende Teile, nicht jedesmal neu zu laden. Das wurde gemacht, um die relativ geringe Downloadbandbreite nicht zu sehr zu belasten. Die Nachteile, die Frames haben, hat es aber schon damals gegeben. Sie wurden damals allerdings akzeptiert. Da um die einzelnen Inhalte immer das Frameset war, konnte nie eine einzelne Unterseite in die Lesezeichen/Favoriten/Bookmarks aufgenommen werden (man landete immer auf der Startseite), Suchmaschinen hatten früher das Problem Frameseiten zu indexieren. Dieser Nachteil ist ausgeräumt, auch Unterseiten können indexiert werden. Das hat allerdings zur Folge, dass wenn Du direkt auf eine Unterseite klickst, wird diese Dir zwar angezeigt, allerdings ausserhalb des Frames. Dadurch ist die Navigation nicht vorhanden und Du kannst Dich nicht auf der ganzen Webpräsenz weiter bewegen.
Was früher noch ein Argument war, wenn an der Navigaton was geändert wurde, musste nur die Seite mit der Navigation geändert werden und durch das Frameset wurde die geänderte Navigaton überall sofort angezeigt. Heute kann das auch gemacht werden, indem die Navigation durch eine serverseitige Scriptsprache eingebunden wird. Das war zwar früher auch schon möglich, aber ein Webspacepaket mit z.B. PHP war früher von den privaten Webseitengestallter fast unerschwinglich. Heute gibt es sogar Freehoster, die Dir Webspace mit PHP und MySQL bieten.
So, ich hoffe, dass ich Dir fur’s erste genug Infos geboten habe, die Dich davon abhalten, Frames einzusetzen.
Gruß thuemmy
Passt zwar nicht ganz zu Frames, aber ne Frage zu Ajax, wenn ich eine Seite so aufbaue, dass das Oberteil der Seite und die Navigation immer da bleibt,
und nur der untere Teil bei einem Klick in der Navileiste nachgeladen wird,
kann man dann die Unterseiten als Favoriten speichern?
Nö oder?
MfG
Hab zwar kaum Ahnung von Ajax, aber ich glaube nicht, dass das geht. Aber da warte lieber auf eine Antwort der Spezialisten.
Gruß thuemmy
Das geht meines Wissens nur mit einem Umweg über den Textanker. Zu sehen etwa bei Google Code Hosting: [noparse]http://code.google.com/p/kml-samples/source/browse/#svn/trunk/interactive/images[/noparse]
Gesamte URL:
http://code.google.com/p/kml-samples/source/browse/#svn/trunk/interactive/images
Die verschiedenen Unterordner können dort ohne Reload geöffnet werden, der Textanker in der URL wird entsprechend angepasst.
Wie genau das umgesetzt wird, ist mir nicht bekannt.
man kann ja ein request auch mir get machen, dann müsste sich die url ändern, und somit kann man es als Lesezeichen speichern, oder wie ist das mit Get bei Ajax?
MfG
Grob: Das ist dann nicht mehr Ajax, da du einen Request sendest, der einen „Gesamt-Reload“ der Seite veranlasst.
Du kannst mit Ajax GET- und POST-Requests ausführen, die laufen aber gewissermaßen an der … im aktiven Viewport geladenen URL/Seite vorbei. (Von der Vorstellung her so ähnlich wie bei Frames/iframes. Wenn sich die im Frame/iframe geladene URL ändert, hat das auch keinen Einfluss auf die URL des übergeordneten Viewports.)
Ein Ajax-Request ist aber im Grunde nicht mehr als eine JavaScript-Funktion, die beliebige Daten von einer URL abruft:
var daten = AjaxRequest.getDaten('http://example.org/foo/');
PS: Wie offtopic sind wir eigentlich? Na ja, es geht so.
häh, also wenn man mit javascript einen Get request sendet, wird die seite neu geladen?
MfG
Wenn du einen GET-Request sendest, bei dem sich die URL ändern soll, grob gesagt: Ja. Voraussetzung war ja eingangs die Änderung der URL. Der Request sähe ungefähr so aus:
window.location.href = 'index2.php?x=y';
Bei einem GET-Request via Ajax wird die Seite nicht neu geladen, die URL ändert sich aber auch nicht. (Höchstens der Textanker-Part, siehe oben.) Es werden lediglich „seitenintern“ Daten nachgeladen.
BTT: Ajax ist in Sachen Verlinkung also kaum besser als ein Frameset.
Danke für die aufschlussreichen Infos
Jetzt hörn wir besser auf, bevor nem Mod der Kragen reißt^^
MfG
ich finde die frage falsch.
frames sind NICHT veraltet, wurden nur früher missbraucht, da es kaum andere mittel gab, heute ist das anders und die herkömmliche verwendung ist „veraltet“ oder besser nicht mehr zeitgemäss.
fälschlicher weise versuchen heute viele, die durchaus korrekte anwendung von frames durch andere mittel zu ersetzen. man hat also früher falscher weise frames verwendet, wo sie nicht zu verwenden waren und tut es heute wiederum genau andersrum und will frames komplett schlecht machen.
frames sind in manchen fällen immernoch ein taugliches mittel, da sie eigenschaften besitzen, die ich durch css nicht ersetzen kann.
es ist also genauer gesagt mehr die frage, wann man denn nun frames richtig verwendet.
so wird eine seite z.b. komplett geladen und der frame werkelt immernoch herum. frames lassen sich also z.b. als gutes mittel verwenden um seitenaufbau verzögerungen zu „überspielen“. so z.b. wenn man keine cronjobs einrichten kann, aber der aufbau von statistiken oder infos bei jedem klick zu lange daueren würde. manche aufbauten dauern bis zu 20-30 sekunden, lasse ich die in einem frame ablaufen, fällt es beim besuch der seite garnicht auf.
eine dynamische einstellung für eine seitenunterteilung (linker/rechter oder oberer/unterer bereich, den der user felxibel einstellen können soll) lässt sich nur ungleich schwerer mit css erreichen.
der aufruf z.b. ein und des selben download-centers auf mehrere domains verteilt und last not least die eigenschaft, dass suchmaschinen frames gerne ignorieren. es könnte also gewollt eingesetzt werden, dass sumas über frames stolpern.
man sollte das richtige mittel für den richtigen einsatz wählen. so sollte man den hinweis auf den verzicht von frames verstehen.
Sie halten sich übrigens hartnäckig.
Edit: Oder vielleicht auch nicht. Die Spannung steigt.
nun, du unterscheidest definitiv zwischen frame und iframe, dann gebe ich dir recht
würde jeder der hier generell NICHT zwischen frame und iframe unterscheidet das so machen wie du, hätte ich kein wort dazu verloren. leider sehen viele nur ein (i)frameset im ansatz und wettern sofort los. mach sowas ohne js mit css Frameset dabei ist die möglichkeit der dynamischen anpassung gemeint, nicht die navigation.