解碼
decoding 屬性(在 <image> 元素上有效)向瀏覽器提供提示,說明它是否應該與渲染其他內容一起執行影像解碼,從而在一個看起來更“正確”(sync)的呈現步驟中完成,或者先渲染和呈現其他內容,然後再解碼影像並稍後呈現(async)。實際上,async 表示下一個繪製不會等待影像解碼。
在靜態 <image> 元素上使用 decoding 時,通常很難察覺到任何明顯的視覺效果。它們可能會最初渲染為空影像,同時獲取影像檔案(無論是從網路還是從快取獲取),然後無論如何都會獨立處理,因此內容更新的“同步”不太明顯。但是,解碼期間發生的渲染阻塞,雖然通常很小,但可以測量——即使用肉眼很難觀察到。
當透過 JavaScript 將 <image> 元素動態插入 DOM 時,使用不同的 decoding 型別會導致更明顯的差異——有關更多詳細資訊,請參閱 SVGImageElement.decoding。
允許的值
示例
html
<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>
規範
| 規範 |
|---|
| HTML 標準 # dom-img-decoding |
瀏覽器相容性
BCD 表格僅在啟用 JavaScript 的瀏覽器中載入。
另請參閱
- SVGImageElement:decoding 屬性
- 影像解碼屬性究竟做了什麼? 在 tunetheweb.com 上 (2023)