Spec-Zone.ru › Web APIs

SVGImageElement: метод decode()

Метод decode() интерфейса SVGImageElement инициирует асинхронную декодировку изображения, возвращая Promise, который разрешается, когда изображение декодировано и его безопасно добавить в DOM.

Синтаксис

decode()

Параметры

Нет.

Возвращаемое значение

Promise, который выполняется с undefined, когда данные изображения готовы к использованию, например, для добавления его в DOM, замены существующего изображения и т.д.

Исключения

Нет.

Примеры

В примере ниже, на странице, вероятно, отобразится пустое изображение, пока изображение загружается:

const SVG_NS = "http://www.w3.org/2000/svg";
const svg = document.querySelector("svg");

const img = document.createElementNS(SVG_NS, "image");
img.src = "img/logo.svg";
svg.appendChild(img);

Использование decode() задержит вставку изображения в DOM до его полной загрузки и декодирования, тем самым избегая проблемы с пустым изображением:

const SVG_NS = "http://www.w3.org/2000/svg";
const svg = document.querySelector("svg");

async function getImage() {
  const img = document.createElementNS(SVG_NS, "image");
  img.src = "img/logo.svg";
  await img.decode();
  svg.appendChild(img);
  const text = document.createElementNS(SVG_NS, "text");
  text.textContent = "Image is fully loaded!";
  svg.appendChild(text);
}

Это особенно полезно, если вы динамически меняете существующее изображение на новое, а также предотвращает, чтобы не связанные с этим кодом отрисовки зависели от декодирования изображения.

Спецификации

Спецификация
HTML
# dom-img-decode-dev

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
decode 64 79 68 51 Нет 64 68 47 Нет 9.0 64

См. также

  • HTMLImageElement.decode(): То же самое, но для элементов HTML <img>
  • Что на самом деле делает атрибут декодирования изображения? на tunetheweb.com (2023)

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/SVGImageElement/decode

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API