2012-04-15 1 views
8

Warum Frames in HTML5 veraltet sind, aber nicht in iFrames. Schließlich gibt es fast keinen Unterschied zwischen den beiden. In vielen Fällen würde die Verwendung von beiden die gleiche Ausgabe liefern (Verzeihung, wenn ich falsch bin)?Frames in HTML5 veraltet, aber nicht in iFrames

+0

Ein 'iframe' funktioniert wie die meisten anderen' block'-DOM-Elemente, mit der Ausnahme, dass sein Inhalt der "root" eines anderen DOM ist. Das gleiche gilt nicht für 'frame's (die in einem' frameset' leben) und sind relativ fest im Display-Port definiert. –

+0

On Programmierer: "[Warum wurden Frames in HTML5 veraltet, aber nicht iFrames?] (Http://programmers.stackexchange.com/q/144515/184857)" – WBT

Antwort

5

Inline Frames werden verwendet, um "Plugins" in Teile einer Seite einzubetten. Gesehen google maps auf einer Website vor? Das sind Iframes.

Tatsächliche Frames auf der anderen Seite sind ziemlich sinnlos. Sie werden praktisch nie in professionellen Websites verwendet. Wenn Sie jemals auf eine High School gehen, sehen Sie vielleicht IT-Projekte, die Rahmen für "Navigationsleisten" oder so etwas verwenden. Sie nehmen die Hälfte der Seite ein (oder wie auch immer Sie sie konfigurieren) und werden als separate Seite geladen.

Einfach ausgedrückt: iframes können als Plugins verwendet werden. Frames sind unelegant und nicht sehr nützlich

Edit: Um genauer zu sein, sind Iframes und Frames ziemlich unterschiedlich. Verwendung meiner Google Maps-Beispiel und Iframe sollte eine kleine Box auf der Seite, wie Sie es gewohnt sind. Ein einfacher Rahmen würde die Hälfte des Bildschirms zum Anzeigen benötigen (Sie können viele Rahmen einrichten, so dass ein bestimmter Rahmen in der Mitte des Bildschirms ist, aber warum, wenn Sie einen Inline-Rahmen verwenden können?)

+0

Ich glaube nicht, dass sie nutzlos sind. Ich habe sie benutzt, um Schnittstellen zu Old-School-Browsergames zu erstellen. Du kannst Aktionen wie das Werfen von Zaubersprüchen in einem Dropdown-Menü auf der rechten Seite ausführen und das zentrale Hauptfenster wird aktualisiert - alles ohne Javascript. Wie erreicht man das heutzutage ohne Rahmen? – shevy

+0

Viele Menschen vergessen die Welt vor AJAX, DHTML, CSS und JavaScript –

+0

Hier ist eine Seite, die eine Anwendung zeigt, an der ich für meinen Tagesjob arbeite (nicht mit MIT). Es ist eine eingebettete Suche über eine API von Drittanbietern. Ein Spender kann das Textfeld "Geben Sie hier einen Arbeitgeber oder einen Firmennamen ein" eingeben und die Suchergebnisse werden von der Seite "mitging.gif" auf der Website von mit.edu zurückgegeben: https://giving.mit.edu/matching-gifts – tbc0

1

Frames waren a großes Feature in früheren Versionen von HTML. Jedoch wurden sie aus vielen Gründen (von denen die meisten nicht mein Verständnis sind) entfernt. Iframes werden zum Einbetten von Anwendungen verwendet und Frames werden für andere Dinge wie Templating verwendet.

Frames hatten ein seltsames Verhalten im Browser obwohl die URL nicht geändert (like this website) auch wenn die Quelle eines Frames ändert. Dies liegt daran, dass Sie mehrere Webseiten gleichzeitig mit Frames anzeigen. In html5 hat das keinen Sinn ergeben (iframes und frames machen meistens die gleichen Dinge, aber das frame-Tag hat eine schlechte Spezifikation) und das w3c hat sie entfernt, weil sie sowieso für eine Weile veraltet waren.

+0

Framesets wurden entmutigt sogar in HTML 4.01. Es hatte nichts mit den "zwei verantwortlichen Firmen" von HTML5 zu tun (das ist das W3C, das auch den HTML 4.01-Standard geschrieben hat). –

-1

<frame> arbeiten völlig anders als und sind in der Regel nicht benutzerfreundlich. Bei den meisten Implementierungen wird die Hauptadresse der Site immer in der Adressleiste angezeigt, unabhängig davon, wo Sie sich auf der Site befinden. Dies macht es fast unmöglich, die Seite mit einem Lesezeichen zu versehen, einen Link zu einem anderen zu senden, etc.

Im Grunde sind Frames die "goto" Aussage der HTML-Welt. Sicher, sie können nützlich sein, und sie können gut gemacht werden, aber die meiste Zeit ist es nur schlechte Programmierung, die von schlechten Programmierern gemacht wird.