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

NestJs verwendet Mongoose zum Betrieb von MongoDB

Ich habe vor Kurzem angefangen, das NestJs-Framew...

So verwenden Sie das JavaScript-Strategiemuster zum Validieren von Formularen

Inhaltsverzeichnis Überblick Formularvalidierung ...

Einführung in JavaScript-Array-Deduplizierungs- und -Flatteningfunktionen

Inhaltsverzeichnis 1. Array-Abflachung (auch als ...

Verwendung des Linux-Lesebefehls

1. Befehlseinführung Der Lesebefehl ist ein integ...

Einführung in den Löschvorgang von B-Tree

Im vorherigen Artikel https://www.jb51.net/articl...

JavaScript implementiert den Farbänderungseffekt durch Klicken mit neun Rastern

In diesem Artikel wird der spezifische JavaScript...

Perfekte Lösung für das Zeitzonenproblem des Docker Alpine-Image

Als ich kürzlich Docker zum Bereitstellen einer J...

Detaillierte Erklärung der Verwendung des MySQL-Paradigmas

1. Paradigma Der englische Name des Paradigmas la...