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

Vue implementiert dreidimensionales Säulendiagramm basierend auf E-Charts

Das dreidimensionale Säulendiagramm besteht aus d...

Allgemeine Struktur-Tags in XHTML

Struktur Text, Kopf, HTML, Titel Text abbr, Akron...

Ausführliche Erläuterung der InnoDB-Sperren in der MySQL-Technologie

Inhaltsverzeichnis Vorwort 1. Was ist ein Schloss...

MySQL 5.7 Installations- und Konfigurations-Tutorial unter CentOS7 64 Bit

Installationsumgebung: CentOS7 64-Bit-Mini-Versio...

Analysieren Sie den Unterschied zwischen ES5 und ES6

Inhaltsverzeichnis Überblick Funktionssignatur Op...

Grundlegendes Tutorial zur Bedienung von Dateien und Berechtigungen in CentOS

Vorwort Bevor wir beginnen, sollten wir uns kurz ...

Verwenden Sie thead, tfoot und tbody, um eine Tabelle zu erstellen

Manche Leute verwenden diese drei Tags auf pervers...

Beispieldemonstration der Vuex-Modularisierung und Namespaces

1. Zweck: Machen Sie den Code leichter wartbar un...

Eine kurze Zusammenfassung von Vue Keep-Alive

1. Funktion Wird hauptsächlich verwendet, um den ...

Beispiel für das Hinzufügen von Attributen mithilfe von Stilen in HTML

Fügen Sie den erforderlichen Links Inline-Stile hi...

Zwei Ideen zur Implementierung der horizontalen Datenbanksegmentierung

Einführung Aufgrund der zunehmenden Popularität v...

Detaillierte Schritte zum manuellen Konfigurieren der IP-Adresse in Linux

Inhaltsverzeichnis 1. Geben Sie zuerst das Konfig...

So installieren Sie Docker und Portainer in Kali

Mit dem Aufkommen von Docker haben sich viele Die...