1

オブジェクトのサブセットを処理するための適切なパターンは何ですか。

ロッカーのリストがあるとします。各ロッカー内にはアイテムのセットがあります。UI はこれに似たものです。アスキー アートが浸透することを願っています。

Locker#1    |    Item #1 in Locker #2
Locker#2 ** |    Item #2 in Locker #2
Locker#3    |    Item #3 in Locker #2
            |    Item #4 in Locker #2
            |    Item #5 in Locker #2
            |    Item #6 in Locker #2
            |    Item #7 in Locker #2
            |    Item #8 in Locker #2
            |

ロッカー #2 が選択されています (アクティブ)。私が行ってきたことは、ロッカー #2 がアクティブ化されたときにコールバックを設定し、次に ItemCollection.fetch({ data: { lid: LOCKER_ID }}) を実行して、表示の準備ができているアイテムのサブセットをフェッチすることです。これはバックボーンのようには感じません。

より良いアプローチは何ですか -

  • モデルのサブセットをロードする - もしそうなら、それを行う方法の良い例はありますか?
  • すべてをロードしてから、コレクションでバックボーン フィルタリングを実行しますか?
  • おそらく適切なページネーションの例ですか?
4

1 に答える 1

1

すべてはデータの量に依存すると思います。

しかし、フィルターが変更されるたびに項目のコレクションを取得しても問題はありません。私はそれがバックボーンの方法だと本当に感じています:)。そして、このソリューションは、大量のデータと少数のデータの両方のケースで機能します。

最適化のステップとして、コレクションをキャッシュし、フィルターが変更されるたびに新しいコレクションを作成できます。したがって、ユーザーが既にアクセスしたフィルターにクリックして戻った場合、再利用して既に取得したフィルターを取得できます。

それでも、この最適化ステップは、ユーザーと新しいデータの間に距離を追加しています。ユーザーはアプリケーション全体をリロードして、キャッシュされたコレクションを更新する必要があります。または... X秒ごとにコレクションをリセットするコードを追加します...難しい方法になり始めます。

したがって、私の意見では、ユーザーがフィルターを変更するたびにコレクションを再フェッチすると、私にとってはいい感じになります。

于 2012-05-14T15:23:09.450 に答える