1

Webアプリケーションで、特定の条件に基づいて、 500から98000までの範囲の多数のdiv要素を非表示または表示する必要がある状況があります。

私が行っているのは、すべてのdiv要素に共通のクラスを適用してから、要素のセット全体を繰り返して、それらが状況に適合しているかどうか、つまり表示または非表示になっているかどうかを確認することです。

このロジックは、数値が500〜10000の範囲である場合は正常に機能しますが、この範囲を超えると結果を表示するのにかなりの時間がかかります。

非常に多くの数が発生するのではないかと心配しています。このロジックにより、一部のブラウザがハングする可能性があります。

したがって、ほとんどのブラウザで、上記の状況を処理するためのより良いアプローチは何でしょうか。

4

3 に答える 3

1

大量のデータを表示している場合は、許可されている場合はページネーションUL LIではなく使用するのが賢明であり、次のDIVように表示/非表示にすることができます-

$(.ulClass li).toggle();
于 2012-10-19T13:49:22.473 に答える
1

Blazermongerが言ったように、これらすべての要素を表示/非表示にする方法が原因で、パフォーマンスが低下しています。それらをコンテナに追加して、コンテナを表示/非表示にしてみてください。

また、show()とhide()を直接呼び出すと、callind .css('display'、'')や.css('display'、'none')よりもコストがかかることに注意してください。

最後に、jQueryオブジェクトの配列のCallshowを確認してください

于 2012-10-19T13:54:32.063 に答える
0

私はあなたの問題を少し異なる視点から見ます。非常に複雑なオートマトンである人間自体には、情報を消費する特定の速度に制限する物理的属性があります。私たちの脳内のニューロンは特定の速度でインパルスを伝達することができ、さらに、私たちの脳は一度に限られた量の情報しか含むことができません。

あなたが人間に見せようとしている要素の数は、人間の知覚の限界をはるかに超えています。表示しようとしているdivのいずれかに1つの単語しか含まれていない場合、9800/(6 * 24)=680ページの印刷テキストになります。それがパルプフィクションのように読みやすいものであれば、訓練を受けた読者はこの量のテキストを約1週間で読むことができ、1日1時間かそこら、おそらくそれ以下で済みます。これだけのテキストを一度に表示する必要がある理由はありません。それを複数のページに分割します。そうしないと、ソフトウェアがその量のデータを処理できたとしても、ユーザーはそれを処理できず、あなたの輝かしい努力は気付かれずに排水溝を滑り落ちます...

于 2012-10-19T14:22:17.550 に答える