Das Iframe -Tag kann auf der Webseite einen eingebetteten Bild erstellen, der den Inhalt eines anderen Webseitendokuments aufruft, indem das SRC -Attribut angegeben wird. Wie bei Frameset wird die Webseitenstruktur geteilt, um einige Teile der Webseite öffentlich zu halten. Im Vergleich zur Framework -Struktur von Frameset sind IFrames flexibler und können überall auf der Webseite eingebettet werden. Aufgrund dieser Funktion der Iframe -Verwendung wurde es auf einigen Webseiten häufig verwendet, was auch zu einem unangemessenen Missbrauch geführt hat. Das Webdesign analysiert verschiedene gängige Möglichkeiten, um das IFrame -Webelement zu verwenden.
- Erstellen einer aktualisiert-freien Antwort-Seitenkomponente als Lösung für den asynchronen Datenaustausch. Dies ist eine alternative Methode, um Anforderungen asynchron zu senden, ohne AJAX in den frühen Tagen zu verwenden. Wenn Sie ein unsichtbares Iframe -Element auf der Seite festlegen und sein SRC -Attribut auf die Seitenadresse verweisen, an der die Anforderung gesendet werden muss, kann die Anfrage gesendet werden. In derselben Domäne kann die zurückgegebene Seite DOM analysiert werden, um Daten zu erhalten. Ein weiterer Vorteil ist, dass es das Sandbox-Sicherheitsmodell von AJAX umgeht und Cross-Domain-Anfragen zum Erhalt von Daten erfolgreich senden kann. In diesem Fall kann jedoch das Dokumentobjekt des IFRame nicht abgerufen werden. Aufgrund seiner Eigenschaften ist es auf einigen Webseiten, auf denen Cross-Domänen-Anfragen erforderlich sind, immer noch anwendbar. Diese Art von Aktualisierungsfrei bedeutet, dass die übergeordnete Seite während des Datenaustauschprozesses nicht aktualisiert wird und weiterhin auf Benutzeroperationen reagiert. Der tatsächliche Datenaustausch wird durch die auf der übergeordnete Seite eingebettete Iframe -Seite gesperrt. Diese eingebettete Iframe -Seite kann bei Bedarf auf sichtbar oder unsichtbar eingestellt werden und wirkt sich nicht auf die Antwort anderer Elemente auf der übergeordneten Seite auf den Benutzer aus. Dieser Effekt ähnelt dem aktualisierten Ajax, aber er ist zu erkennen, dass sein Mechanismus völlig unterschiedlich ist. Obwohl Google Mail ein Modell für AJAX -Anwendungen ist, kombiniert es viele IFrames, um seine überlegene Leistung und die Benutzererfahrung zu erzielen.
- Eine Möglichkeit, eine Seite zu optimieren. Verwenden Sie Iframes, um Skripte parallel zu laden, um die Ladeprobleme von langsamen Inhalten von Drittanbietern wie Symbolen und Anzeigen zu lösen. Die Werbeplattform von Google Adsense bedeutet Iframe, um Einnahmen auf den Websites der Benutzer auszutauschen. Sie können diese Art von Technologie auch sehen, indem Sie die Werbecodes auf der Homepage des Inlandsportals betrachten und analysieren. Sie können auch ein verstecktes Iframe verwenden, um größere Dateien zum Cache zu bringen, wenn das Netzwerk unter niedrigem Netzwerkdruck steht, damit andere Seiten diese verwenden können. Das Konzept der Vorspannung kann mit Firebug für Google HomePage analysiert werden. Sie können im Body -Tag sehen:
onload = document.fqfocus (); if (document.images) new Image (). src = '/images/nav_logo4.png'
Bei einem solchen Code wird das geladene Bild nav_logo4.png auf der Homepage nicht verwendet. Wenn Sie dieses Bild auf anderen Seiten wie der Suchergebnisliste verwenden, müssen Sie ihn nur aus dem Cache lesen und müssen ihn nicht erneut herunterladen.
- Als Hack -Methode für die schwimmende Schicht im IE6 -Browser, um Steuerelemente und Blitzelemente zu blockieren. In der Web2.0 -Ära ist die Lightbox (oder Dickbox) -Technologie zu einem beliebten Effekt mit ihrer guten Erfahrung und ihrem frischen visuellen Erlebnis geworden. Diese Technologie verwendet tatsächlich eine absolut positionierte schwimmende Ebene, um die Originalseite abzudecken, um Textinformationen, Bilder, Formulare oder andere willkürliche Seitenelemente zu präsentieren, und ersetzt den Weg in der frühen Webentwicklung, dass Pop-up-Browser-Windows oder Browser-Nachrichten und Eingabesteuerelemente häufig zur Interaktion mit Benutzern verwendet werden. Auf die alte Weise werden Skripte, die neue Fenster aufbringen, häufig vom Anzeigenblockierungssystem des Browsers abgefangen, und die eigenen Nachrichtensteuerung des Browsers werden von Forschern des Benutzererfahrungsforscher kritisiert, da sie den Prozess des Browsers unterbrechen, was zu der gesamten Seite und anderen Webseiten führt, die durch die Sperrung mehrerer Tags stöbern. Als Front-Line-Web-Front-End-Entwickler mit strengen Anforderungen an sich selbst werden Sie auf jeden Fall dieses Problems bei der Implementierung des Lightbox-Effekts begegnen. Die absolute Positionierungsschicht kann die Auswahlsteuerungen und Flash auf der Webseite in IE6 nicht abdecken. Selbst wenn der Stil auf einen höheren Z-Index-Wert eingestellt ist, ist er nutzlos. Dies liegt daran, dass das Select-Element ein Element auf Formularebene in IE6 ist und seine Priorität viel höher ist als alle anderen HTML-Tags. Nur IFrames derselben Formebene können es abdecken. Daher haben Entwickler festgestellt, dass dieses Problem dieses Problem lösen kann, wenn die schwebende Schicht in einen Iframe oder einen Iframe in die schwimmende Schicht gelegt wird. Glücklicherweise wurde dieses Problem nach IE6 in der IE -Upgrade -Version behoben, aber für IE6, das immer noch über 50%+ Marktanteil (Statistik zum Zeitpunkt der Veröffentlichung) hat, ist diese Lösung immer noch von praktischer Bedeutung.
Zusätzlich zu den oben genannten drei Anwendungen sind einige unangemessene Anwendungen auch für Iframe -Elemente üblich. Stellen Sie beispielsweise zu viele Iframe -Frames in die Seite ein und aktualisieren Sie den Iframe, wenn Sie das Zielattribut des Link -Tags außerhalb des Frame angeben. Diese Verwendung ähnelt Frameset und erreicht den Zweck des Navigationsteils. Die ursprüngliche Absicht ist gut, aber es besteht kein Zweifel an den Nachteilen. Dies führt zu zu vielen Anfragen für eine Seite. Der oben erwähnte Artikel "Best Practices für die Beschleunigung Ihrer Website" besagt deutlich, dass die Optimierung von Seiten die Anzahl der IFRames minimiert und drei Nachteile zusammenfasst:
- Auch wenn der Inhalt leer ist, verursacht er Ressourcenverlust (einschließlich Client und Server).
- Blocks -Seite Onload -Ereignisauslöser (Blöcke Seite Onload, und es wird übersetzt, da die Seite das Laden verhindern wird. Hier gibt es Zweifel)
- Keine Semantik (SEO ist ein wichtiger Bestandteil des Website -Marketings)
In der nächsten Version von HTML5 von XHTML1.0 gibt es aufgrund der negativen Auswirkungen auf die Verfügbarkeit von Webseiten keine Unterstützung für das Frameset -Tag, was auch einige Probleme von der Seite erläutert.
Da sich das eingebettete Iframe nicht automatisch an seine interne Inhaltsgröße anpassen kann, um die Integrität der Seitenanzeige aufrechtzuerhalten, müssen auch ein JavaScript -Skript geschrieben werden, um seine Größe sofort gemäß den Änderungen des Iframe -Inhalts anzupassen. Die mehrfachen verstreuten Anforderungen, verbunden mit der Notwendigkeit, dass JavaScript -Skripte korrigiert werden müssen, erhöht das Risiko mehrerer iframe -Seiten. Gibt es also eine gute Möglichkeit, einen Seiteninhalt in der Öffentlichkeit zu halten? Die Serverseite hat uns lange Zeit Lösungen zur Verfügung gestellt. Die Einschlüsse in ASP und die erforderlichen Methoden in PHP werden alle verwendet, um einen vorhandenen Code in das Programm aufzunehmen. Dies kann es auch ermöglichen, einen bestimmten Teil der Seite (z. B. Navigationsmenüs, Fußzeilen) öffentlich zu sein. Nach dem Ausführen wird es jedoch als vollständige Seite ausgegeben, wodurch die Kundenanfragen effektiv reduziert werden, und es gibt kein Problem mit einer hohen Anpassungsfähigkeit von IFrames.