| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/Web/API/HTMLImageElement/decoding | [Back] [Original] |
Get to know MDN better
Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.
Cette fonctionnalit est bien tablie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis janvier 2020.
La proprit decoding de l'interface HTMLImageElement fournit une indication au navigateur sur la faon dont il doit dcoder l'image. Plus prcisment, s'il doit attendre que l'image soit dcode avant de prsenter d'autres mises jour de contenu ou non. Elle reflte l'attribut de contenu decoding de l'lment HTML <img>.
Une chane de caractres dont la valeur est sync, async, ou auto. Pour leur signification, voir la rfrence HTML <img>.
Dans l'exemple ci-dessous, vous obtiendrez probablement une image vide affiche sur la page pendant le tlchargement de l'image. Dfinir decoding ne l'empchera pas.
const img = new Image();
img.decoding = "sync";
img.src = "img/logo.png";
document.body.appendChild(img);
Insrer une image aprs le tlchargement peut rendre la proprit decoding plus pertinente :
async function loadImage(url, elem) {
return new Promise((resolve, reject) => {
elem.onload = () => resolve(elem);
elem.onerror = reject;
elem.src = url;
});
}
const img = new Image();
await loadImage("img/logo.png", img);
// L'utilisation de `sync` permet de s'assurer que les autres contenus ne sont mis jour qu'avec l'image
img.decoding = "sync";
document.body.appendChild(img);
const p = document.createElement("p");
p.textContent = "L'image est compltement charge !";
document.body.appendChild(p);
Une meilleure solution consiste cependant utiliser la mthode HTMLImageElement.decode() pour rsoudre ce problme. Elle permet de dcoder une image de faon asynchrone, en retardant son insertion dans le DOM jusqu' ce qu'elle soit entirement tlcharge et dcode, vitant ainsi le problme d'image vide mentionn ci-dessus. Ceci est particulirement utile si vous remplacez dynamiquement une image existante par une nouvelle, et cela vite galement que des rendus non lis ce code soient bloqus pendant le dcodage de l'image.
L'utilisation de img.decoding = "async" peut viter de bloquer l'affichage d'autres contenus si le dcodage prend du temps :
const img = new Image();
img.decoding = "async";
img.src = "img/logo.png";
document.body.appendChild(img);
| Spcification |
|---|
| HTML # dom-img-decoding |
HTMLImageElement.decode()decoding de l'lment HTML <img>Cette page a t modifie le 9 janv. 2026 par les contributeurices du MDN.
HTMLImageElementBeforeUnloadEventDOMStringMapErrorEventHTMLAnchorElementHTMLAreaElementHTMLAudioElementHTMLBRElementHTMLBaseElementHTMLBodyElementHTMLButtonElementHTMLCanvasElementHTMLDListElementHTMLDataElementHTMLDataListElementHTMLDialogElementHTMLDivElementHTMLDocumentHTMLElementHTMLEmbedElementHTMLFieldSetElementHTMLFormControlsCollectionHTMLFormElementHTMLFrameSetElementHTMLGeolocationElementHTMLHRElementHTMLHeadElementHTMLHeadingElementHTMLHtmlElementHTMLIFrameElementHTMLInputElementHTMLLIElementHTMLLabelElementHTMLLegendElementHTMLLinkElementHTMLMapElementHTMLMediaElementHTMLMenuElementHTMLMetaElementHTMLMeterElementHTMLModElementHTMLOListElementHTMLObjectElementHTMLOptGroupElementHTMLOptionElementHTMLOptionsCollectionHTMLOutputElementHTMLParagraphElementHTMLPictureElementHTMLPreElementHTMLProgressElementHTMLQuoteElementHTMLScriptElementHTMLSelectElementHTMLSourceElementHTMLSpanElementHTMLStyleElementHTMLTableCaptionElementHTMLTableCellElementHTMLTableColElementHTMLTableElementHTMLTableRowElementHTMLTableSectionElementHTMLTemplateElementHTMLTextAreaElementHTMLTimeElementHTMLTitleElementHTMLTrackElementHTMLUListElementHTMLUnknownElementHTMLVideoElementHashChangeEventHistoryImageDataLocationMessageChannelMessageEventMessagePortNavigatorPageRevealEventPageSwapEventPageTransitionEventPluginPluginArrayPromiseRejectionEventRadioNodeListTimeRangesUserActivationValidityStateWindowWorkletGlobalScopeCertaines parties de ce contenu sont protges par le droit d'auteur 19982026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.
| Web Proxy Viewer | New URL | Original Page |