Analyse mehrerer Gründe, warum Iframe weniger verwendet werden sollte

Analyse mehrerer Gründe, warum Iframe weniger verwendet werden sollte
Die folgende Grafik zeigt, wie zeitaufwändig es ist, ein Iframe mit 100 verschiedenen Elementen zu erstellen.

Zeit zum Erstellen von 100 Elementen

Seiten, die Iframes verwenden, enthalten im Allgemeinen nicht zu viele Iframes, sodass der Zeitaufwand für die Erstellung von DOM-Knoten keinen großen Anteil ausmacht. Es bringt jedoch einige andere Probleme mit sich: Onload-Ereignis und Verbindungspool.

Iframes blockieren das Laden der Seite

Es ist sehr wichtig, das Onload-Ereignis des Fensters rechtzeitig auszulösen. Das Onload-Ereignis löst das Anhalten der „Beschäftigt“-Anzeige des Browsers aus und teilt dem Benutzer mit, dass die aktuelle Webseite geladen wurde. Wenn das Onload-Ereignis verzögert wird, entsteht für den Benutzer der Eindruck, dass die Webseite sehr langsam ist.

Das Onload-Ereignis des Fensters muss ausgelöst werden, nachdem alle Iframes (einschließlich der darin enthaltenen Elemente) geladen wurden. In Safari und Chrome kann diese Blockierung vermieden werden, indem der SRC des Iframes dynamisch über JavaScript festgelegt wird.

Nur Verbindungspool

Ein Browser kann nur eine geringe Anzahl von Verbindungen zu einem Webserver öffnen. Ältere Browser, darunter Internet Explorer 6 und 7 und Firefox 2, können nur zwei Verbindungen gleichzeitig zu einem einzigen Hostnamen öffnen. Dieses Limit wurde in neueren Browserversionen erhöht. Safari 3+ und Opera 9+ können 4 Verbindungen zu einer Domäne gleichzeitig öffnen, Chrome 1+, IE 8 und Firefox 3 können 6 Verbindungen gleichzeitig öffnen. Sie können die detaillierte Datentabelle in diesem Artikel anzeigen: Zusammenfassung zu parallelen Verbindungen.

Man könnte erwarten, dass ein Iframe über einen eigenen separaten Verbindungspool verfügt, aber das ist nicht der Fall. In den meisten Browsern teilen sich die Hauptseite und die darin enthaltenen Iframes diese Verbindungen. Dies bedeutet, dass das Iframe beim Laden von Ressourcen möglicherweise alle verfügbaren Verbindungen verbraucht und so das Laden der Hauptseitenressourcen blockiert. Dies ist natürlich in Ordnung, wenn der Inhalt im Iframe wichtiger ist als der Inhalt der Hauptseite. Aber normalerweise ist der Inhalt im Iframe nicht so wichtig wie der Inhalt der Hauptseite. An dieser Stelle lohnt es sich nicht, alle verfügbaren Verbindungen im Iframe zu verwenden. Eine Lösung besteht darin, den SRC des Iframes dynamisch festzulegen, nachdem die wichtigen Elemente auf der Hauptseite geladen wurden.

Die Top-10-Websites in den Vereinigten Staaten verwenden alle Iframes. Meistens wird es zum Laden von Anzeigen genutzt. Dies ist eine verständliche und logische Lösung, eine einfache Möglichkeit, Werbedienste zu laden. Bedenken Sie jedoch, dass Iframes die Leistung Ihrer Seite beeinträchtigen. Vermeiden Sie nach Möglichkeit die Verwendung von Iframes. Wenn Sie sie benötigen, verwenden Sie sie mit Vorsicht.

Quelle: Englische Originalübersetzung aus China: IT-Sucht    

<<:  Detaillierte Erklärung des Nginx-Prozessplanungsproblems

>>:  Perfekte Lösung für den Themenwechsel basierend auf CSS-Variablen (empfohlen)

Artikel empfehlen

MySQL stellt Daten über Binlog wieder her

Inhaltsverzeichnis MySQL-Protokolldateien binlog ...

Einführung in Netzwerktreiber für Linux-Geräte

Kabelgebundenes Netzwerk: Ethernet Drahtloses Net...

Detaillierte Erklärung des Befehlsmodus in der Javascript-Praxis

Inhaltsverzeichnis Definition Struktur Beispiele ...

Konfigurationsmethode für das Nginx-Anforderungslimit

Nginx ist ein leistungsstarker, leistungsstarker ...

Detaillierte Erklärung des Linux-Kernel-Makros Container_Of

Inhaltsverzeichnis 1. Wie werden Strukturen im Ge...

Detaillierte Erläuterung der Verwendung des DockerHub-Image-Repository

Bisher wurden die von uns verwendeten Images alle...

Daten in der Layui-Tabellenzeile dynamisch bearbeiten

Inhaltsverzeichnis Vorwort Stil Funktion Beschrei...

Bringen Sie Ihnen kostenlos bei, wie Sie AWS-Serverressourcen nutzen

AWS – Amazons Cloud-Computing-Serviceplattform Ic...