createObjectURL
を使用して、ローカルイメージファイルへの参照URLを取得しています。私がファイル/イメージで完了したら、私はrevokeObjectURL
にそのメモリを解放するように呼び出します。すべてがうまく動作しますが、私ができるすべてのメモリを解放していることを確認したいだけです。クライアントサイドファイルのオブジェクトURLとそのメモリを解放する方法について
私はchrome://blob-internals
ページを調べた後、私の懸念が生じました。 createObjectURL
を呼び出してイメージを使用すると、2つのエントリが作成されていることがわかりました。 URL blob:blobinternal:///d17c4eef-28e7-42bd-bafa-78d5cb86e761
およびその他の
blob:http://localhost/dbfe7b09-81b1-48a4-87cd-d579b96adaf8
両方を持つ一つは、しかし、同じローカルファイルパスに言及しました。 revokeObjectURL
を呼び出すと、2番目のエントリだけがchrome://blob-internals
から削除されました。なぜこのようなことが起こるのですか。他のエントリを取り除くにはどうすればいいのですか?また、2つのタイプの違いは何ですか?
また、画像を使用する前にURLを取り消す人々の例も見てきました。これにはどのような影響がありますか?
トピックに関するいくつかの洞察は非常に高く評価されます。 :)
編集: 私はjsfiddleに例を作成しました。最初にblobinternalsを開き、既存のブロブを削除してください。その後、jsfiddleの例を実行し、マシン上のイメージファイルを選択します。それから、追加されたものを見るために境界線を更新する。次に、私の例では「URLを取り消す」をクリックします。最後にblobinternalsをリフレッシュして、どのブロブが残っているかを確認します。
使用しているChromeのバージョンは何ですか?私はこれをChrome 15 Devチャンネルで見ることはできません(1つのblobURLが作成されます)。作成されている2つのURLを返すことができる小さなテストページがありますか?私の経験では、 'revokeObjectURL'呼び出しを反映するのに' chrome:// blob-internals'が数秒かかる場合があります。 – ebidel
投稿を編集してjsfiddleの例を追加しました。私はクロム14ベータを実行しています。 – rewolf