HTML Academy · Leçon

Chargement différé des images : `loading=lazy`

Différez le chargement des images hors écran avec l’attribut natif `loading`.

Leçon 3 sur 413 étapes

Chargement différé des images : `loading=lazy` est une leçon HTML Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage HTML Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours HTML Academy comprend 4 leçons au total.

L’attribut loading

<img loading="lazy" src="..."> indique au navigateur de différer le téléchargement de l’image jusqu’à ce qu’elle soit sur le point d’entrer dans la fenêtre d’affichage. La prise en charge native par tous les navigateurs modernes en fait le gain de performance le plus simple pour les pages riches en images.

Définition de « près de la fenêtre d’affichage »

Les navigateurs utilisent une petite marge heuristique, généralement de quelques milliers de pixels sous la ligne de flottaison. L’image commence à se charger suffisamment tôt pour être entièrement rendue lorsque l’utilisateur la voit défiler : le chargement différé passe inaperçu pour les utilisateurs attentifs.

Quand ne pas différer le chargement

Ne définissez jamais loading="lazy" sur les images situées au-dessus de la ligne de flottaison ou susceptibles de constituer votre LCP (plus grand rendu de contenu). Le chargement différé retarde l’élément visuel le plus important, ce qui nuit à la vitesse perçue et aux indicateurs essentiels du Web.

Largeur et hauteur obligatoires

Pour que le chargement différé soit efficace, donnez à l’élément <img> une width et une height explicites (ou un ratio d’aspect en CSS). Sans dimensions, le navigateur ne peut pas réserver d’espace, le défilement provoque des réorganisations de la mise en page et l’heuristique de chargement différé fonctionne mal.

<img loading="lazy" src="cat.jpg" width="800" height="600" alt="A cat">

Chargement différé des iframe

Le même attribut fonctionne sur l’élément <iframe>. <iframe loading="lazy"> diffère le chargement des cartes, vidéos et intégrations sociales situées sous la ligne de flottaison, qui importeraient sinon plusieurs mégaoctets de JavaScript de tiers à chaque affichage de page.

Le chargement immédiat est le comportement par défaut

La valeur par défaut est loading="eager" (chargement immédiat), et elle est rarement écrite explicitement. Définir le chargement immédiat pour les images situées au-dessus de la ligne de flottaison peut être utile comme documentation, en indiquant aux réviseurs que ce choix était délibéré.

Associer à srcset

Le chargement différé s’associe parfaitement aux images adaptatives. Le navigateur choisit toujours la ressource appropriée dans srcset ; il en diffère simplement le téléchargement. Aucune coordination supplémentaire n’est nécessaire entre loading="lazy" et srcset.

<img
  loading="lazy"
  srcset="img-400.jpg 400w, img-800.jpg 800w, img-1200.jpg 1200w"
  sizes="(min-width: 768px) 800px, 100vw"
  src="img-800.jpg"
  alt="Hero"
  width="800" height="600"
>

Indication de décodage

Associez le chargement différé à decoding="async" pour permettre au navigateur de décoder l’image hors du fil d’exécution principal. Cela évite de bloquer les interactions pendant le défilement lorsque de nombreuses images arrivent simultanément après une longue séquence de défilement.

Images d’arrière-plan

Les images d’arrière-plan CSS ne peuvent pas être chargées de manière différée nativement. Pour les arrière-plans principaux situés au-dessus de la ligne de flottaison, ce n’est pas un problème ; pour ceux situés plus bas, utilisez IntersectionObserver afin d’insérer l’adresse URL lorsque l’élément approche de la fenêtre d’affichage.

Comportement à l’impression

Lorsque la page est imprimée, le navigateur charge immédiatement toutes les images, quelle que soit la valeur loading="lazy", afin que la version imprimée soit complète. Vous n’avez pas besoin de traiter les images à chargement différé séparément dans les feuilles de style d’impression.

Mesurer les économies

L’audit « Différer les images hors écran » de Lighthouse répertorie chaque image qui devrait utiliser loading="lazy". Le filtrage du panneau Réseau par « Images », associé à la vue « Cascade », montre les chargements échelonnés produits par le chargement différé : les requêtes initiales diminuent considérablement dans les galeries d’images.

Vérification des connaissances

Pourquoi est-il nuisible de définir loading="lazy" sur une image principale située en haut de la page ?

Résumé

Utiliser loading="lazy" sur les éléments <img> et <iframe> hors écran constitue un gain de performance obtenu avec un seul attribut. Associez-le à une largeur et une hauteur explicites (pour réserver l’espace), à srcset (pour l’adaptabilité) et à decoding="async" (pour maintenir un défilement fluide). Ne l’appliquez jamais à l’image LCP ni à un élément visible dans la fenêtre d’affichage initiale.

Gratuit pour commencer

Apprends HTML avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
40
Leçons
159

Questions Fréquemment Posées

La leçon « Chargement différé des images : `loading=lazy` » est-elle gratuite ?

Oui — le texte complet de « Chargement différé des images : `loading=lazy` » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours HTML Academy, passe à CoddyKit PRO. Le cours HTML Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Chargement différé des images : `loading=lazy` » ?

Différez le chargement des images hors écran avec l’attribut natif `loading`. Tu pratiques HTML Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer HTML Academy ?

Aucune expérience préalable n'est requise. HTML Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Chargement différé des images : `loading=lazy` » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon HTML Academy ?

Oui. Chaque leçon HTML Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Attributs `async` et `defer`
  2. Préchargement, prélecture et préconnexion
  3. Chargement différé des images : `loading=lazy`
  4. Conseils de ressources : `modulepreload`
← Retour à HTML Academy