loading HTML attribuut
4 elementen kennen dit attribuut. Klik op een tag voor de volledige uitleg van dat element.
Wat doet het loading attribuut?
Bepaalt of de browser de inhoud direct laadt (eager, standaard) of pas wanneer het element de viewport nadert (lazy). Verbetert de laadtijd van pagina's met veel afbeeldingen, video's of iframes die niet meteen zichtbaar zijn.
<img src="onderaan-de-pagina.jpg" loading="lazy" alt="Foto onderaan de pagina">
Welke HTML-elementen kennen loading?
<audio>
Experimenteel
Het <audio>-HTML-element wordt gebruikt om geluidsinhoud in documenten in te sluiten. Het kan een of meer audiobronnen bevatten, weergegeven...
eager- : Laadt de audio onmiddellijk, ongeacht of de audio zich momenteel binnen de zichtbare viewport bevindt (dit is de standaardwaarde).
lazy-
: Stelt het laden van de audio uit totdat de bediening een door de browser berekende afstand tot de viewport bereikt.
OpmerkingOm audio-elementen zichtbaar te laten overlappen met de viewport, moeten ze zichtbaar zijn. Browsers gebruiken het
controls-attribuut om audio-elementen zichtbaar te maken, dus dit is nodig voor lazy loading. Lazy geladen audio zonder hetcontrols-attribuut wordt niet geladen.Lazy loading voorkomt het netwerk- en opslagbandbreedtegebruik dat nodig is om de audio te verwerken totdat redelijk zeker is dat deze nodig zal zijn. Dit verbetert de prestaties in de meeste typische gebruiksscenario's.
Lazy geladen audio die zich in de visuele viewport bevindt, is mogelijk nog niet gedownload wanneer de
load-gebeurtenis van het Window wordt geactiveerd. Dit komt doordat de gebeurtenis alleen wordt geactiveerd op basis van eager geladen audio — lazy geladen audio wordt niet meegerekend, zelfs niet als deze zich binnen de visuele viewport bevindt bij het initieel laden van de pagina.Laden wordt alleen uitgesteld wanneer JavaScript is ingeschakeld. Dit is een anti-tracking-maatregel, omdat als een user agent lazy loading zou ondersteunen wanneer scripting is uitgeschakeld, het nog steeds mogelijk zou zijn voor een site om de geschatte scrollpositie van een gebruiker gedurende een sessie te volgen, door strategisch audio in de markup van een pagina te plaatsen zodat een server kan bijhouden hoeveel audioverzoeken worden gedaan en wanneer.
OpmerkingHet
loading="lazy"-attribuut heeft ook invloed op hetautoplay-attribuut, zoals beschreven in dat gedeelte van deze pagina.
-
<iframe>
Het <iframe>-HTML-element vertegenwoordigt een geneste browsing context, waarmee een andere HTML-pagina in de huidige pagina wordt ingebed.
eager- : Laad de iframe direct bij het laden van de pagina (dit is de standaardwaarde).
lazy-
: Stel het laden van de iframe uit totdat deze een berekende afstand van het visual viewport bereikt, zoals gedefinieerd door de browser. Het doel is om het gebruik van netwerk- en opslagbandbreedte die nodig is om het frame op te halen te vermijden, totdat de browser er redelijk zeker van is dat het nodig zal zijn. Dit verbetert de prestaties en kosten in de meeste typische gebruiksscenario's, met name door het verkorten van de initiële laadtijd van de pagina.
Laden wordt alleen uitgesteld wanneer JavaScript is ingeschakeld. Dit is een maatregel tegen tracking, want als een user agent lazy loading zou ondersteunen wanneer scripting is uitgeschakeld, zou het nog steeds mogelijk zijn voor een site om de ongeveer scrollpositie van een gebruiker gedurende een sessie te volgen, door strategisch iframes in de markup van een pagina te plaatsen, zodat een server kan bijhouden hoeveel iframes worden aangevraagd en wanneer.
-
<img>
Het <img>-element van HTML bettet een afbeelding in het document in.
eager- : Laadt de afbeelding onmiddellijk, ongeacht of de afbeelding zich momenteel binnen de visual viewport bevindt (dit is de standaardwaarde).
lazy-
: Stelt het laden van de afbeelding uit totdat deze een door de browser berekende afstand tot de viewport bereikt.
Lazy loading vermijdt de netwerk- en opslagbandbreedte die nodig is om de afbeelding te verwerken totdat het redelijk zeker is dat deze nodig zal zijn. Dit verbetert de prestaties in de meeste gangbare gebruikssituaties.
Hoewel expliciete
width- enheight-attributen voor alle afbeeldingen worden aanbevolen om verschuivingen in de pagina-indeling te voorkomen, zijn ze vooral belangrijk voor lazy-loaded afbeeldingen. Lazy-loaded afbeeldingen worden nooit geladen als ze geen zichtbaar deel van een element overlappen, zelfs niet als het laden ervan dat zou veranderen, omdat niet-geladen afbeeldingen eenwidthenheightvan0hebben. Dit zorgt voor een nog storendere gebruikerservaring wanneer de zichtbare inhoud in de viewport herschikt terwijl deze gelezen wordt.Lazy-loaded afbeeldingen die zich in de visuele viewport bevinden, zijn mogelijk nog niet zichtbaar wanneer het
load-event van het Window-object wordt geactiveerd. Dit komt doordat het event wordt geactiveerd op basis van eager-loaded afbeeldingen — lazy-loaded afbeeldingen worden niet meegeteld, zelfs niet als ze zich bij het initieel laden van de pagina binnen de visuele viewport bevinden.Het laden wordt alleen uitgesteld wanneer JavaScript is ingeschakeld. Dit is een anti-trackingmaatregel, omdat als een user agent lazy loading zou ondersteunen wanneer scripting is uitgeschakeld, het nog steeds mogelijk zou zijn voor een site om de ongeveer scrollpositie van een gebruiker gedurende een sessie te volgen, door afbeeldingen strategisch in de markup van een pagina te plaatsen, zodat een server kan bijhouden hoeveel afbeeldingen worden opgevraagd en wanneer.
-
<video>
Experimenteel
Het <video>-HTML-element sluit een mediaspeler in het document in die videoweergave ondersteunt. Je kunt <video> ook gebruiken voor audio-in...
eager- : Laadt de video onmiddellijk, ongeacht of de video zich momenteel in het zichtbare viewport bevindt (dit is de standaardwaarde).
lazy-
: Stelt het laden van de video uit totdat deze een berekende afstand tot het viewport bereikt, zoals bepaald door de browser.
Lazy loading voorkomt het netwerk- en opslagverbruik dat nodig is om de video te verwerken totdat redelijkerwijs zeker is dat deze nodig zal zijn. Dit verbetert de prestaties in de meeste typische gebruikssituaties.
Hoewel expliciete
width- enheight-attributen worden aanbevolen voor alle video's om layout shift te voorkomen, zijn ze vooral belangrijk voor video's met lazy loading. Video's met lazy loading worden nooit geladen als ze geen zichtbaar deel van een element overlappen, zelfs niet als het laden ervan dit zou veranderen, omdat niet-geladen video's eenwidthenheightvan0hebben. Dit zorgt voor een nog storender gebruikerservaring wanneer de inhoud die zichtbaar is in het viewport herschikt terwijl deze gelezen wordt.Video's met lazy loading die zich in het zichtbare viewport bevinden, zijn mogelijk nog niet zichtbaar wanneer de
load-gebeurtenis van Window wordt geactiveerd. Dit komt doordat deze gebeurtenis is gebaseerd op eager-loaded video's — video's met lazy loading worden niet meegeteld, zelfs niet als ze zich bij het eerste laden van de pagina binnen het zichtbare viewport bevinden.Het laden wordt alleen uitgesteld wanneer JavaScript is ingeschakeld. Dit is een anti-tracking-maatregel, want als een user-agent lazy loading zou ondersteunen wanneer scripting is uitgeschakeld, zou het voor een site nog steeds mogelijk zijn om de ongeveer positie van de gebruiker in de pagina gedurende een sessie te volgen, door strategisch video's in de opmaak van een pagina te plaatsen zodat een server kan bijhouden hoeveel video's worden aangevraagd en wanneer.
-