Ich bin erstaunt, dass niemand das iframe an sich in Frage stellt. Folgend ein Blogbeitrag, der leider nicht mehr online ist:
Es scheint, dass bei jedem Auftrag, an dem ich arbeite, das gleiche Thema auftaucht. Irgendwann sagt jemand: "Benutzen Sie dafür doch einfach einen iFrame". Dann muss ich den alten, müden Weg einschlagen, warum das keine gute Idee ist.
Nun, dieser Artikel wird ein wenig utilitaristisch für mich sein. Ich hoffe, dass ich alle Gründe, warum iFrames kein Allheilmittel sind, an einer einzigen Stelle zusammenfassen kann, so dass ich mir in Zukunft etwas Zeit sparen und die Leute einfach auf diese URL verweisen kann. Daher werde ich diesen Beitrag gelegentlich aktualisieren, wenn ich diese Punkte verfeinere. Fühlen Sie sich frei, diesen Beitrag für den gleichen Zweck zu verwenden, wenn Sie möchten, und posten Sie bitte alle Vorschläge oder Punkte, die ich übersehen habe, auf meinem Twitter-Account (@rwbDev ), ich werde Sie sicher nennen, wenn ich den Punkt zu diesem Artikel hinzufüge.
Lassen Sie mich eines klarstellen: iFrames haben einen guten Zweck. Ich selbst habe iFrames schon oft mit großem Erfolg eingesetzt. Das Problem ist, dass die Leute dazu neigen, sie zu benutzen, um eine schlechte Architektur zu umgehen oder um ein Problem einfach zu lösen. Meiner Erfahrung nach wird dadurch in der Regel nur ein kleines Problem gegen ein viel größeres Problem eingetauscht, und meistens ist es ein unnötiger Kompromiss. Auf diese beiden Punkte werde ich im Folgenden eingehen.
Schlecht für SEO. Dies ist einer der häufigsten Gründe, warum Sie iFrames meiden sollten. Einige Suchmaschinen können Schwierigkeiten mit den Seiten haben, auf die in iFrames verwiesen wird. Inwieweit sich dies auf das Suchranking einer Website oder Seite auswirkt, ist nicht vollständig bekannt. Die meisten Experten, mit denen ich gesprochen habe, sind sich jedoch einig, dass es definitiv einen gewissen Einfluss hat. Schauen Sie sich diesen interessanten Beitrag über den Wendekreis an. Wenn Sie mehr darüber erfahren möchten, wie SEO funktioniert und welche Auswirkungen Designentscheidungen wie diese haben, empfehle ich Ihnen seomoz.org. Dies ist natürlich kein Problem, wenn SEO für Ihre Seite oder Anwendung kein Thema ist. Zum Beispiel eine Anwendung, die ein Login erfordert (alle Seiten hinter dem Login sind für die Suchmaschinen ohnehin nicht zugänglich). * Hinweis (hinzugefügt am 6. Juni 2013): Jüngste Tests haben gezeigt, dass Suchmaschinen tatsächlich Links innerhalb eines iFrames folgen können. Das bedeutet, dass die SEO-Auswirkungen eines iFrames viel geringer sind als in der Vergangenheit. Es ist immer noch unklar, ob es keine Auswirkungen gibt, und verschiedene Suchmaschinen können sich in dieser Hinsicht unterschiedlich verhalten.
Verlinkung/Lesezeichen. Wenn Sie kein zusätzliches JavaScript einführen, kann der Nutzer keinen direkten Link zu Inhalten innerhalb des iFrames erhalten. Dies gilt auch für Links, die jemand einem Freund per E-Mail schickt, Lesezeichen oder Seiten, die in einem Suchmaschinenergebnis auftauchen. Stellen Sie sich vor, Ihr Benutzer besucht Ihre Seite und ein Inhalt befindet sich in einem iFrame. Er klickt auf einen Link im iFramed-Inhalt. Dieser Inhalt verbleibt erwartungsgemäß innerhalb des iFrames. Nun findet Ihr Benutzer einen Inhalt, zu dem er innerhalb des iFrames navigiert hat, und möchte ihn an einen Freund senden. Das Kopieren der URL in den Browser funktioniert jedoch nicht, da dies den Freund nur auf die ursprüngliche Seite mit dem im iFrame angezeigten Inhalt schicken würde. Es gibt Skripte, mit denen man dieses Problem umgehen kann. Ich habe sie selbst ein paar Mal implementiert (in Situationen, in denen ich keine andere Wahl hatte). Diese führen jedoch oft zu eigenen Problemen und haben oft Probleme mit der Kompatibilität zwischen verschiedenen Browsern. Oft sind sie auch einfach nur fehlerhaft. Auch hier gilt wieder: Je nach Website oder den Anforderungen Ihrer Anwendung ist dies vielleicht kein Problem, aber für die meisten Websites ist es ein großes Problem.
Schwierigkeiten bei der Fehlersuche. Dieser Punkt wird oft übersehen. Wenn Sie eine robuste Anwendung mit komplexem jQuery, Ajax und anderen coolen Dingen haben, die überall auf der Seite passieren, können iFrames das Debuggen eines Problems sehr viel schwieriger machen. Tritt der Fehler auf der äußeren Seite oder auf der Seite innerhalb des Frames auf? Browser-Entwicklungstools können dabei helfen, aber selbst diese Tools machen nicht immer klar, wo das Problem liegt, wenn man es mit einem iFrame zu tun hat. Sie wären überrascht, wie oft ein Fehler auftritt, wenn sich eine Seite innerhalb eines iFrames befindet, aber problemlos funktioniert, wenn sie außerhalb des iFrames geladen wird. Dies ist ein Problem für jede Website. Aber besonders für Websites, die iFrames ausgiebig nutzen. Je mehr bewegliche Teile es in einem System gibt, desto schwieriger ist es, ein Problem zu diagnostizieren.
Es ist einfach schwierig, sie stabil zu halten. Es gibt eine große Website aus einem früheren Job von mir, die iFrame ausgiebig verwendet. Ich bin mir nicht sicher, inwieweit das NDA hier gilt, daher werde ich sicherheitshalber keinen Link zu ihrer Website setzen. Sie verwenden sie häufig und haben alle Skripte und ausgefallenen Tricks, um (theoretisch) die normalen Nachteile der Verwendung von iFrames zu vermeiden. Dennoch kommt es immer wieder zu Problemen und Fehlern auf ihrer Website, die auf den häufigen Missbrauch und die Überbeanspruchung von iFrames zurückzuführen sind. Auch in Foren, auf LinkedIn, Twitter usw. gab es häufig Kundenbeschwerden über die Probleme, die ihnen dadurch entstanden. Gerade eben habe ich ihre Website besucht und innerhalb weniger Minuten eine Seite gefunden, die mir aufgrund eines iFrame-Problems einen Fehler anzeigte. Das sind kluge Leute, die die Probleme mit iFrames gut kennen. Doch selbst sie kämpfen noch Jahre später damit. Wenn iFrames so missbraucht werden wie auf dieser Website, kann kein noch so ausgefallenes Skript die Probleme lösen, die unweigerlich auftreten werden.