引数で指定されたオブジェクトを表す URL を含む DOMString を生成します。→●、MS
URL の寿命は、それを作成したウィンドウ内の document と結び付けられています。新しいオブジェクト URL は、指定された File オブジェクトか Blob オブジェクトを表します。
オブジェクト URL を解放するには、revokeObjectURL() を呼び出してください。
注: この機能は Web Worker 内で利用可能です
メモ: この機能はメモリ・リークを生み出す可能性があるため、サービス・ワーカー内で利用することはできません。
object | オブジェクト URL を生成するための File、Blob、MediaSource の何れかのオブジェクトです。 |
---|
object で指定された内容を参照するために使用されるオブジェクト URL を含んだ DOMString です。
function handleFiles() { if (!this.files.length) { fileList.innerHTML = "<p>ファイルが選択されていません。</p>"; } else { fileList.innerHTML = ""; const list = document.createElement("ul"); fileList.appendChild(list); for (let i = 0; i < this.files.length; i++) { const li = document.createElement("li"); list.appendChild(li); const img = document.createElement("img"); img.src = URL.createObjectURL(this.files[i]); img.height = 60; img.onload = function() { URL.revokeObjectURL(this.src); } li.appendChild(img); const info = document.createElement("span"); info.innerHTML = this.files[i].name + ": " + this.files[i].size + " バイト"; li.appendChild(info); } } }
すでにオブジェクト URL が生成されている場合でも、createObjectURL() を呼び出す度に、新しいオブジェクト URL が生成されます。必要がなくなったら URL.revokeObjectURL() を呼び出して、それぞれを解放してください。
ブラウザーは、文書がアンロードされた際にこれらのオブジェクト URL をメモリから解放します。しかし、性能とメモリ使用を考慮すると、明示的にアンロードできる安全な機会があるならば、そうするべきです。
古いバージョンの Media Source 仕様書では、<video> 要素にストリームを添付するには MediaStream にオブジェクト URL を生成する必要があるとしてます。これはもう必要なく、ブラウザーはこのようにする対応を削除してきています。
重要: もし createObjectURL() でメディア要素にストリームを割り当てるコードが残っているのであれば、単純に srcObject を直接 MediaStream に設定するよう更新する必要があります。
表示内容: |
表示内容: |