11

タイプとフォーマットは変更されないが、コンテキストが変更される要素が最大 100 個あるとします。(基本的には行です)
これらの行は入力にバインドされ、ユーザーの入力に応じて変化します。

パフォーマンスを最大化するための最良のアプローチは何ですか? 要素を再利用して、コンテキストを変更する以外はすべて保持しますか? 他に何か?

編集、明確化:
検索アルゴリズムは関係ありませんが、私は MVVM (angularjs) フレームワークを使用しているため、私が行っている検索は JavaScript で行われており、ボトルネックではありません。結果を取得した後、それに応じて更新します。

また、DOM を介して要素を検索する必要はありません。要素への参照はあります。更新中の実行時間を最小限に抑えたいと考えています。

4

5 に答える 5

4

コードの場合、これで十分です。

$(element).css('display' , 'none');

ただし、パフォーマンスの問題は、それらの要素をどのように見つけるかによって異なります 。重要なのは、要素をコンテナーにラップし、そのコンテナー内の要素のみを検索することです

$('container').find('your_elements').css('display' , 'none');

また

$('your_elements', 'container').css('display' , 'none');

やります。

決してしません:

$('your_elements').css('display' , 'none'); 

JSはそのためにdom全体を検索する必要があります

于 2012-12-19T06:19:29.340 に答える
2

要素が 100 個しかない場合は、それほど重要ではありません。スタイル オブジェクトのプロパティを設定して、display表示または非表示にします。

于 2012-12-19T06:06:54.663 に答える
0

すべての行の一意のIDを使用し、jqueryを使用して値を変更して操作します。

于 2012-12-19T06:12:28.783 に答える
0

最善の方法は、これらすべての要素をdivでラップし、スタイルを外部divに設定することです(行であると言ったようにそれらが一緒になっていると仮定します)

<div id="wrapper">
   <!-- Your dom elements -->
</div>

ラッパーdivに適切なスタイルを設定します。

そして、通常、それらは非常に些細な操作であるため、そのようなことについてのパフォーマンスについて心配する必要はないと思います。

于 2012-12-19T06:14:51.347 に答える
0

display none で CSS クラスを作成し、そのクラスを TR 要素に適用すると、後で使用するために jquery セレクターを利用できるようになると思います。 $('TR.hidden') if(!$('TD').hasClass('hidden'))

于 2012-12-19T06:52:48.537 に答える