diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
commit | 33058f2b292b3a581333bdfb21b8f671898c5060 (patch) | |
tree | 51c3e392513ec574331b2d3f85c394445ea803c6 /files/zh-cn/web/api/htmlimageelement/decode | |
parent | 8b66d724f7caf0157093fb09cfec8fbd0c6ad50a (diff) | |
download | translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.gz translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.bz2 translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.zip |
initial commit
Diffstat (limited to 'files/zh-cn/web/api/htmlimageelement/decode')
-rw-r--r-- | files/zh-cn/web/api/htmlimageelement/decode/index.html | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/files/zh-cn/web/api/htmlimageelement/decode/index.html b/files/zh-cn/web/api/htmlimageelement/decode/index.html new file mode 100644 index 0000000000..b04b67a431 --- /dev/null +++ b/files/zh-cn/web/api/htmlimageelement/decode/index.html @@ -0,0 +1,68 @@ +--- +title: HTMLImageElement.decode() +slug: Web/API/HTMLImageElement/decode +translation_of: Web/API/HTMLImageElement/decode +--- +<div> +<p>{{APIRef("HTML DOM")}}</p> + +<p>{{domxref("HTMLImageElement")}} 接口的 <strong><code>decode()</code></strong> 方法返回一个当图片解码后可安全用于附加到 DOM 上时 resolves 的 {{jsxref("Promise")}} 对象。 这可用于在将图片附加到一个 DOM 中的元素(或作为一个新元素加入 DOM 中)之前启动加载,所以在将图像添加到 DOM 时可以立即渲染图像。这反过来,防止了将图像加入DOM后图像的加载造成下一帧渲染的延迟。</p> +</div> + +<h2 id="语法">语法</h2> + +<pre class="syntaxbox">var <var>promise</var> = <em>HTMLImageElement</em>.decode();</pre> + +<h3 id="参数">参数</h3> + +<p>无.</p> + +<h3 id="返回">返回</h3> + +<p>一个一旦数据准备好可供使用时resolve的promise对象.</p> + +<h3 id="异常">异常</h3> + +<p>{{domxref('DOMException')}} 表示解码图像时出错。</p> + +<h2 id="使用提示">使用提示</h2> + +<p>一个 <code>decode()</code> 的潜在用例:当在加载一个非常大的图片时(例如,一个在线相册),你可以在加载初期提供一个低分辨率的缩略图,之后通过实例化一个 {{domxref("HTMLImageElement")}} 将该图像替换为一个全分辨率图像,设置其 source 为全分辨率图像URL,使用 <code>decode()</code> 获取一旦全分辨率图像准备好被使用时 resolved 的 promise 对象。这时你可以使用当前可用的全分辨率图像替换之前的低分辨率图像。</p> + +<h2 id="例子">例子</h2> + +<p>以下例子展示了如何使用 <code>decode()</code> 方法来控制一个图像插入 DOM 的时机。若不使用 {{domxref('Promise')}} 返回方法,你将在图像的 {{event("load")}} 事件处理函数中将图像加入 DOM 中,通过 {{event("error")}} 事件处理函数处理错误。</p> + +<pre class="brush: js">const img = new Image(); +img.src = 'nebula.jpg'; +img.decode() +.then(() => { + document.body.appendChild(img); +}) +.catch((encodingError) => { + // Do something with the error. +}) +</pre> + +<h2 id="Specifications">Specifications</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG','#dom-img-decode','decode()')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Initial definition.</td> + </tr> + </tbody> +</table> + +<h2 id="浏览器兼容性">浏览器兼容性</h2> + + + +<p>{{Compat("api.HTMLImageElement.decode")}}</p> |