私は約6000人の子供がいるコンテナを持っています。これに対してJquery.emptyを実行すると、より速いブラウザの1つで約2秒かかります。IE7/8では、スクリプトが応答しないことをユーザに通知し、そのオプションを停止するオプションがあります。この辺りの読み込み「応答しないスクリプト」ポップアップを引き起こす多くの子を持つコンテナでJqueryが空になる
は、私はいくつかの要素にjQueryのバインドされたオブジェクトを持っていると私はメモリリークを避けたいので、私はJquery.emptyを実行する必要があることを学びました。 「UIスレッド」を緩和するためのsetTimeoutに空を置く
が表示され、ポップアップを防ぐようには見えません。
私は私がこれをスピードアップするか、少なくともポップアップを抑制することができるいずれかのヒントを必要としています。いくつかの要素を削除しようとする必要がありますか、jquery.empty関数に何が影響しますか?私は2つに分けることができますか?
コード:
<div class="table">
<a id="header1">header1</a>
<div id="content1">
<a class="contenttext1">contenttext1</a>
</div>
<div id="content2">
<a class="contenttext2">contenttext2</a>
</div>
....content3
....content4
....
</div>
私はdiv.tableを空にしています:
DOM構造は以下の通りです。$を実行
$(".table").empty();
( "表")を見つけます( "*")。長さは.emptyコードを実行するために約2秒かかり6000
を与えます。コードを見ることなく、私は具体的なアドバイスを提供することはできません
コードを投稿できますか?非効率なセレクタを使用すると、改善することができますが、スクリプトを見ずに判断することは不可能です。 – SpaceBison
コードと構造体が追加されました – Yonder
'$("。table ").html( '');'または '$("。table ")[0] .innerHTML = '';'? [jQueryのソースコード](https://github.com/jquery/jquery/blob/master/src/manipulation.js#L185)にあるように、 'empty'はすべての子孫を取得し、それらのために格納されたデータをパージします。これは良いことですが、問題の原因になっている可能性があります。 –