È ora di eseguire il caricamento lento degli iframe fuori schermo.

Supporto dei browser

  • Chrome: 77.
  • Edge: 79.
  • Firefox: 121.
  • Safari: 16.4.

Il caricamento lento degli elementi <iframe> ritarda il caricamento degli iframe fuori schermo finché l'utente non scorre vicino a loro. Ciò consente di risparmiare dati, velocizzare il caricamento altre parti della pagina e riduce la memoria utilizzata.

Come per il caricamento lento per le immagini, utilizza l'attributo loading per indicare al browser che vuoi eseguire il caricamento lento di un iframe.

<iframe src="https://example.com"
        loading="lazy"
        width="600"
        height="400"></iframe>

Questa demo di <iframe loading=lazy> mostra gli incorporamenti dei video con caricamento lento:

Perché eseguire il caricamento lento degli iframe?

Gli incorporamenti di terze parti coprono un'ampia gamma di casi d'uso, dai video player ai dai post sui social media agli annunci. Spesso questi contenuti non sono immediatamente visibili in dall'area visibile, ma gli utenti pagano comunque il costo del download dei dati JavaScript per ogni frame, anche se gli utenti non scorrono fino a visualizzare questo elemento.

Risparmio di dati derivante dall&#39;utilizzo del caricamento lento degli iframe per un iframe. In questo esempio, il caricamento &quot;eager&quot; recupera 3 MB, mentre il caricamento lento non esegue il pull di questo codice finché l&#39;utente non scorre più vicino all&#39;iframe.
Il caricamento di iframe fuori schermo implica che gli utenti sprecare i dati scaricando elementi che potrebbero non vedere mai.

In base a una ricerca di Chrome sugli iframe fuori schermo con caricamento lento automatico Per gli utenti che usano il Risparmio dati, iframe con caricamento lento potrebbero comportare un risparmio medio dei dati del 2-3%, mentre l'1-2% First Contentful Paint di riduzione in media e del 2% Miglioramenti a First Input Delay (FID) al 95° percentile.

Il caricamento lento di iframe fuori schermo può anche migliorare le dimensioni Contentful Paint (LCP). Dato che gli iframe richiedono spesso di larghezza di banda significativa per caricare tutte le risorse secondarie, gli iframe fuori schermo possono ridurre il conflitto di larghezza di banda su reti vincolate lasciando una larghezza di banda maggiore per caricare le risorse che contribuiscono al LCP.

Come funziona il caricamento lento integrato per gli iframe?

L'attributo loading consente al browser di posticipare il caricamento di iframe fuori schermo e più immagini finché gli utenti non scorrono vicino a loro. loading supporta due valori:

  • lazy: un buon candidato per il caricamento lento.
  • eager: non adatto per il caricamento lento. Carica subito.

L'utilizzo dell'attributo loading negli iframe funziona come segue:

<!-- Lazy-load the iframe -->
<iframe src="https://example.com"
        loading="lazy"
        width="600"
        height="400"></iframe>

<!-- Eagerly load the iframe -->
<iframe src="https://example.com"
        width="600"
        height="400"></iframe>

Non specificare l'attributo ha lo stesso impatto di un caricamento esplicito la risorsa.

Se devi creare in modo dinamico iframe utilizzando JavaScript, impostando Anche iframe.loading = 'lazy' sull'elemento è supportato:

var iframe = document.createElement('iframe');
iframe.src = 'https://example.com';
iframe.loading = 'lazy';
document.body.appendChild(iframe);

In che modo il caricamento lento di iframe popolari incorporati influisce sull'esperienza utente?

L'impostazione predefinita degli iframe con caricamento lento renderebbe i siti web molto più reattivi. I seguenti esempi mostrano i miglioramenti e i dati relativi al Time to Interactive (TTI) di risparmio per gli incorporamenti multimediali, ma gli iframe pubblicitari con caricamento lento possono fornire vantaggi dell'IA.

YouTube

Il caricamento lento degli incorporamenti di video di YouTube consente di risparmiare circa 500 kB al caricamento iniziale della pagina:

<iframe src="https://www.youtube.com/embed/YJGCZCaIZkQ"
        loading="lazy"
        width="560"
        height="315"
        frameborder="0"
        allow="accelerometer; autoplay;
        encrypted-media; gyroscope;
        picture-in-picture"
        allowfullscreen></iframe>
Chrome.com ha ridotto di 10 secondi il tempo di interazione grazie al caricamento lento di iframe fuori schermo per l&#39;incorporamento di video di YouTube
Chrome.com ha ridotto il proprio TTI di 10 secondi del caricamento lento degli incorporamenti di YouTube fuori schermo.
di Gemini Advanced.

Instagram

Gli incorporamenti di Instagram forniscono un blocco di markup e uno script che inserisce un nella tua pagina. Il caricamento lento di questo iframe evita di dover caricare script necessario per l'incorporamento e consente di risparmiare circa 100 kB sul caricamento iniziale. Poiché questi incorporamenti sono spesso visualizzati sotto l'area visibile nella maggior parte degli articoli, si tratta di una candidato ragionevole per il caricamento lento degli iframe.

Spotify

Gli incorporamenti Spotify con caricamento lento possono risparmiare 514 kB sul caricamento iniziale.

<iframe src="https://open.spotify.com/embed/album/1DFixLWuPkv3KT3TnV35m3"
        loading="lazy"
        width="300"
        height="380"
        frameborder="0"
        allowtransparency="true"
        allow="encrypted-media"></iframe>

Plug-in social di Facebook

I plug-in social di Facebook consentono agli sviluppatori di incorporare contenuti di Facebook nel loro pagine web. Il più popolare è il plug-in Like, un pulsante che mostra quanti utenti hanno messo Mi piace della pagina. Per impostazione predefinita, l'incorporamento il plug-in Mi piace in una pagina web che utilizza il codice JSSDK di Facebook recupera circa 215 kB di di risorse, 197 kB di cui JavaScript. Il plug-in spesso viene visualizzato alla fine un articolo o verso la fine di una pagina, quindi caricalo con entusiasmo quando non è visualizzato può non essere ottimale.

Plug-in Mi piace di Facebook
plug-in "Mi piace" di Facebook.

Grazie all'ingegnere Stoyan Stefanov, ora tutti i plug-in social di Facebook supportare iframe standardizzati il caricamento lento, Gli sviluppatori che attivano il caricamento lento tramite i plug-in data-lazy può impedire il caricamento di questi plug-in finché l'utente non scorre nelle vicinanze. In questo modo l'incorporamento può continuare a funzionare per gli utenti che ne hanno bisogno, Salvare i dati per gli utenti che non fanno scorrere la pagina fino in fondo. Speriamo bene questo è il primo di molti incorporamenti a esplorare il caricamento lento standardizzato e produzione.

Caricamento lento degli iframe cross-browser

Il caricamento lento degli iframe a livello di browser è ben supportato in tutti i principali browser ed è consigliato nella maggior parte dei casi d'uso, per eliminare la necessità di dipendenze aggiuntive da JavaScript.

Tuttavia, se hai la necessità di supportare più browser o vuoi avere un maggiore controllo sulle soglie di caricamento lento, puoi utilizzare una libreria di terze parti per eseguire il caricamento lento di iframe sul tuo sito.

Puoi anche eseguire il caricamento lento di iframe fuori schermo utilizzando il metodo lazysize Libreria JavaScript:

<script src="lazysizes.min.js" async></script>

<iframe frameborder="0"
      class="lazyload"
    allowfullscreen=""
    width="600"
    height="400"
    data-src="//www.youtube.com/embed/ZfV-aYdU4uE">
</iframe>

Usa il seguente pattern per rilevare la funzionalità di caricamento lento e recuperare le dimensioni lazy se non è disponibile:

<iframe frameborder="0"
      class="lazyload"
    loading="lazy"
    allowfullscreen=""
    width="600"
    height="400"
    data-src="//www.youtube.com/embed/ZfV-aYdU4uE">
</iframe>

<script>
  if ('loading' in HTMLIFrameElement.prototype) {
    const iframes = document.querySelectorAll('iframe[loading="lazy"]');

    iframes.forEach(iframe => {
      iframe.src = iframe.dataset.src;
    });

  } else {
    // Dynamically import the LazySizes library
    const script = document.createElement('script');
    script.src =
      'https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.2.2/lazysizes.min.js';
    document.body.appendChild(script);
  }

</script>

Esistono eccezioni al caricamento lento degli iframe fuori schermo?

Un esperimento iniziale con iframe a caricamento lento automatico per Risparmio dati degli utenti di Chrome faceva un'eccezione per gli iframe nascosti, spesso utilizzati per le comunicazioni o l'analisi. Questi ultimi non venivano caricati lentamente vengono sempre caricati per evitare di danneggiare tali caratteristiche.

L'attributo loading non applica questa euristica, quindi lo sviluppatore sempre può scegliere cosa viene caricato con il caricamento lento. L'attributo loading deve sempre essere rispettata, rispettando i limiti di distanza e altre scelte del browser (come la stampa).

Risorse

Per altre idee relative al caricamento lento, consulta raccolta con caricamento lento di immagini e video.

Grazie a Dom Farolino, Scott Little, Houssein Djirdeh, Simon Pieters, Kayce Basques, Joe Medley e Stoyan. Stefanov per le sue recensioni.