2012-03-11 9 views
2

HTMLページからイメージをアンロードし、そのメモリ占有をいくつかのJavascript命令で解放できるかどうかを知りたいです。すでに画像が画面に表示されているとします。メモリを節約するためにアンロードする必要があるとします(理由はここでは関係ありません)。 Javascriptでやってもいいですか?はJavascriptでHTMLページから画像をアンロードできますか?

+5

あなたはDOMツリーから画像を削除することができますが、メモリからの除去が唯一のブラウザ次第です:DOMからそれをクリアするには

、あなたはこのような何かをするだろう。 – duri

+1

@duriのフォローアップとして、ブラウザは未使用のアセットをガベージコレクションし、最終的にメモリを解放しますが、ユーザーの観点からそのコントロールレベルのAPIはありません – jlb

+2

巨大な画像でテストケースを作成し、ブラウザのメモリ消費量を削除します。ブラウザに反応する方法を教えてください) – Christoph

答えて

4

あなたの質問にコメントが正しい、あなたはからそれを削除することができますDOMが、それは良いと準備ができていると判断すると、ブラウザはメモリからそれをクリアします。

var badImage = document.querySelector("img#idOfImage"); 
//or "img[href='nameofimagefile.jpeg']" 
//whatever you need to do to get the right element 
//then, remove it: 

badImage.parentElement.removeChild(badImage); 
1
$('#myDiv').remove(); 

または

function removeElement(divNum) { 
    var d = document.getElementById('myDiv'); 
    var olddiv = document.getElementById(divNum); 
    d.removeChild(olddiv); 
} 

しかし、それは任意のメモリ、または帯域幅またはHTTPリクエストを解放しませんDOMから削除するだろう...そう、パフォーマンス賢明それはの多くをすることはありません違い(レンダリングを考慮しない)。

しかし、イメージがDOMから削除された場合、使用するメモリは最終的にはブラウザ(ガベージコレクション)によって管理され、削除されると考えられます。

それはブラウザレベルの関心事であるため、非常に短いなしに私はメモリから削除する特定の方法があるとは思わない...

+0

画像が削除されないと、最終的にはsrc属性が空に変わっただけでガベージコレクションが行われるのでしょうか? – Firsh

関連する問題