Lazy load eingebettete YouTube-Videos

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Das ist eine sehr clevere Idee von Arthur Corenzan. Anstatt das Standard-YouTube-Embed zu verwenden, das eine Menge Ressourcen auf einer Seite lädt, unabhängig davon, ob der Benutzer das Video abspielt oder nicht, verwendet man die winzige Platzhalter-Webseite, die nur ein Bild ist, das man anklicken kann und das mit dem YouTube-Embed verlinkt ist.

Es verhält sich im Wesentlichen genau gleich: anklicken, Video an Ort und Stelle abspielen.

Der Trick basiert auf srcdoc, einer Funktion von <iframe>, mit der man den gesamten Inhalt eines HTML-Dokuments in das Attribut einfügen kann. Es ist wie Inline-Styling, aber auf der Ebene eines Inline-ganzen-Dokuments. Ich habe es schon früher verwendet, als ich von MailChimp erstellte Newsletter auf dieser Seite eingebettet habe. Ich habe die E-Mail als vollständiges HTML-Dokument in der Datenbank gespeichert, bei Bedarf abgerufen und in ein <iframe> mit srcdoc eingefügt.

Arthur dankt Remy für eine Anpassung, um es unter IE 11 zum Laufen zu bringen, und Adrian für einige Accessibility-Anpassungen.

Ich stimme Hugh in den Kommentaren zu diesem Beitrag ebenfalls zu. Jetzt, da Native Lazy Loading in Chrome eingeführt wurde (siehe unsere Berichterstattung), können wir auch loading="lazy" hinzufügen, da dies keine Anfragen bedeutet, wenn es außerhalb des Viewports gerendert wird.

Ich werde hier auch eine Demo einbetten

Leser Tracey Rich sagte, sie hätten &#x25BA; anstelle des Unicode-Play-Buttons verwenden müssen.