2012-01-12 15 views
0

可能性の重複:
jQuery memory leak with DOM removaljquery remove()でメモリリーク?

私は、メモリリークをテストするための簡単なJavaScriptのコードスニペットを作成しました。

function createDom(howmany) 
{ 
    var i; 
    var el; 
    var body = $("body"); 
    for(i=0;i<howmany;i++) 
    { 
     el = $("<div></div>"); 
     el.text(i); 
     el.addClass('element'); 
     body.append(el); 
    } 
} 

$(document).ready(function(){ 

    createDom(10000) 

}); 

Chromeでファイルを開くと、約20MBが使用されます。私は新しいURL(約:空白)に移動すると、Chromeはメモリをクリアします。

問題は、$( "。element")を実行するとChromeがメモリを使用するということです。remove()。大きな問題は、URLを変更してもメモリが残っていることです。

私は間違ってテストしていますか?私はちょうどそれらを取り除く代わりにすべての要素を隠すべきであるようにほとんど感じる...

+1

http://stackoverflow.com/questions/1462649/jquery-memory-leak-with-dom-removal –

+0

@Sudhir //私はOPの機能(removeWithoutLeak)を試しましたが、私は同じ結果を得ています。 – Moon

答えて

0

これは助けのかもしれないかもしれない、それを掲示した。 メソッドremove()empty()およびhtml()データの子孫要素をチェックし、それらをクリーンアップします。これはオーバーヘッドですが、少なくとも、メモリを再利用することができます。 removeData()、次にdetach()を試してみてください。それが何らかの方法で助けてくれると願っています。

+0

//これらの要素を削除するためにネイティブのjavascriptを使用すると、メモリは増えませんが、ほとんど同じままです。 「再利用できる」とはどういう意味ですか?私はメモリを解放する関数を呼び出す必要がありますか? – Moon

関連する問題