6

私は Backbone.js を使用してページに一度に 20 個のアイテムをロードしています。サーバーから取得するアイテムがなくなるまで下にスクロールすると、より多くのアイテムが取得されます。

同時に、名前を入力すると、一致するアイテムがフィルタリングされる入力フィールドが必要です。

問題は、まだ一番下までスクロールして完全なセットをフェッチしていない場合、入力フィルターは現在ページにあるアイテムのみに一致することです。

UI フィルタリングと遅延読み込みアイテムを組み合わせるために、技術的および視覚的に最適なソリューションは何ですか?

編集: ここでの実際のシナリオは、非常に遅くなる可能性があるすべての Facebook の友達を読み込み、それらを他の API とマッシュアップすることです。エクスペリエンスが遅延するため、一度にすべてをロードしたくありませんでした。

4

1 に答える 1

1

ユーザーが検索しているときに、フィルターを含むフェッチでコレクションをリセットしてみませんか?

Collection.fetch({ term : $("#search").val()})

このコレクションのバックエンド API エンドポイントを設定して、params という用語で結果をスコープすると、コレクションには、ユーザー入力に一致するサーバーからの結果のみが含まれます。

また、最初のフェッチをユーザーが入力する最初の 3 文字に制限し、ユーザーが引き続き入力するときに残りのフィルタリング クライアント側を実行することもできます。これは、最初の呼び出しで検索結果サーバー側を制限していない場合です。

于 2012-09-06T05:41:31.260 に答える