-1

jQuery のソースコードを調べているときに、-function にcleanData何度か出くわしました: jQuery.remove() がそれを呼び出します。他の機能も同様です。cleanDataDOM要素を削除する前に呼び出す目的は何ですか?

jQuery のremove()-method は、このフィドルのような simple(removeChild) よりも優れていますか? もしそうなら、それはなぜですか?そのコードはメモリリークにつながりますか?

削除前にクリアされるデータとは何ですか? jQuery以外のユースケースはありますか?

4

1 に答える 1

1

jQuery メソッドからイベント ハンドラーやデータを取得したり、その他の特定の操作を実行したりする要素の場合、jQuery はjQuery.cacheその要素のエントリを作成します。

要素自体は、 のエントリへのキーを保持するプロパティを取得しますjQuery.cache。それが要素とデータをリンクする唯一のものです。

そのため、要素を削除する場合、jQueryjQuery.cacheは要素で見つかったキーを使用してエントリを検索し、関連するデータを破棄する必要があります。これを行わないと、要素がなくなると、jQuery.cacheデータを削除する必要があることを知る方法がないため、メモリ リークが発生します。

したがって、ネイティブを使用し.removeChild()て要素を削除および破棄すると、そのデータへの唯一のリンクが破棄されます。そのため、残念ながらすべての要素の削除に jQuery を使用する必要があり、jQuery と一緒に他の DOM ライブラリを使用すべきではありません。

于 2013-09-05T19:56:16.553 に答える