私は、テーブルを使用して可能な最も効率的な方法でクライアント側をフィルタリングしたいjsonデータの大きな塊を持っています。各ヘッダには入力フィルタがあり、ユーザーはその特定のプロパティをフィルタリングするための文字列を入力できます。ユーザーが "フリーテキスト検索"を発行できるグローバル入力フィルターもあります。カラムとグローバルフィルタを使用したフィルタテーブル - 最も効率的な方法ですか?
これを行う方法を考えていて、問題についてのあなたの意見を聞きたいのですが。フィルタ入力をクリックすると
:表
+---------------+
| Global filter |
+---------------+
+----------+---------+----------+-----------+
| Column 1 | Colum 2 | Column 3 | Column 4 |
+----------+---------+----------+-----------+
| ... | ... | ... | ... |
+----------+---------+----------+-----------+
オプション1を可視化するために
例
- データのセットを生成入力されたすべてのフィルタexcepフィルタがクリックされ、キャッシュされます。キーアップ時
- - これはOKだろうステップ1
からの結果に基づいてデータをフィルタリングします。しかし、いくつかの検索が何度も行われるため、やはりオーバーヘッドが発生します。
オプション2:キーアップオン
- - ブラー上にキャッシュ検索
- に基づいてフィルタ - 現在の結果はキャッシュされた検索を上書きします。
フィルタを追加するだけであれば、これはさらに効果的です。しかし、既に人口の多いフィルターを変更したいときには、ロジックは "壊れます"。
オプション3:
これは、フィルタ入力にクリックすると1と2のミックスのようになります。フィルタはデフォルト値が含まれていない場合
- (すなわちユーザーが入力したフィルターデータがない場合)、現在のフィルター以外のすべてのフィルターに基づいてキャッシュを生成します。
- キャッシュされた検索に基づくフィルタ
- ぼかしの場合 - 現在の結果がキャッシュされた検索を上書きします。
私は自分自身でブレーンストーミングきたし、オプション3は、私はシンプルさと性能の面で思い付くことが最高の方法です。
私は正しい経路にいますか?どう思いますか?
/パトリック
私は、現在のフィルタが既にキャッシュに影響を与えているとは考えていませんでした。他の誰かが答えたいと思った場合には、このスレッドに未回答のままにしておきます。どうもありがとうございました! – PatrikJ
あまりにも大きい説明に余分に感謝! – PatrikJ
それは何もなかった...歓声! – Viney