decoding
Атрибут decoding
(декодування, розшифрування), дійсний на елементах <image>
, дає браузеру підказку щодо того, чи повинен він виконувати декодування зображення при візуалізації іншого вмісту в одному кроці відображення, що виглядає більш "правильно" (sync
), чи візуалізувати та відображати інший вміст спочатку, а потім декодувати зображення і відобразити його пізніше (async
). На практиці async
означає, що наступне малювання не чекає, поки зображення декодується.
Нерідко складно помітити який-небудь суттєвий ефект, коли decoding
використовується на статичних елементах <image>
. Ймовірно, вони спершу візуалізуються як порожні зображення, поки отримуються файли зображень (або з мережі, або з кешу), а потім так чи інакше обробляються незалежно, тож "синхронізація" оновлень вмісту – менш помітна. Однак блокування візуалізації під час декодування, хоча й невелике, може бути виміряне – навіть якщо важко помітити його людським зором.
Використання різних типів decoding
може призвести до більш помітної різниці при динамічному вставлянні елементів <image>
у DOM засобами JavaScript – дивіться подробиці в SVGImageElement.decoding
.
Дозволені значення:
sync
Декодувати зображення синхронно, вкупі з візуалізацією решти вмісту, та показати все разом.
async
Декодувати зображення асинхронно, після візуалізації, а показати інший вміст.
auto
Немає побажань щодо режиму декодування; браузер вирішує, що найкраще для користувача. Це усталене значення.
Приклад
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
<image
href="https://example.com/mdn_logo_dark.png"
height="200"
width="200"
decoding="async" />
</svg>
Специфікації
Сумісність із браузерами
Дивіться також
- SVGImageElement – властивість decoding
- Що насправді робить атрибут image decoding? на tunetheweb.com (2023)