web-dev-qa-db-ja.com

並べ替えによる遅延読み込み

検索からかなりの数の結果を返すエンタープライズアプリに取り組んでいます。ユーザーは、検索結果の遅延読み込みを希望していましたが、並べ替えも必要でした。私の開発者は、ユーザーがすべての結果をスクロールしてすべてロードするまで、ソートは正確ではないと私に言っています。

私はこの状況に対処する方法についての考えがありません。誰かが以前にこれに遭遇しましたか?

ありがとう

4
artdog

実際にはUXの質問ではありません...並べ替えとページ付けは実際にはDBによって実行される可能性があるため、開発者は半分間違っています。 LINQを使用する場合、たとえば次の式:

var persons = (from p in container.Persons
               where p.Age >= 18 && p.Sex == Sex.Female
               orderby p.Distance ascending
               select p)
               .Skip(1000).Take(50);

スクロールバーの場所からこれらのインデックスが必要であることが示唆された場合、DBによって実行されるSQLに変換され、1000〜1049のレコードのみが送信されます。ただし、他の形式のストレージの場合、実際には正しい可能性があるため、ソートする前にすべてのデータをロードする必要があります。

この質問には2つの側面があります:一方は完全にトピックから外れています(実装側)ともう一方はUX側です。幸いにも、実装側でもWojciechの回答でカバーされています。

UXの部分については、技術的には実行できます。しかし問題は次のとおりです:なぜこれを実行するのですか?

検索のアイデアは、stringを含むユーザーの入力に基づいて結果を表示することですが、可能な場合は常に、並べ替えやフィルタリングも含めてください。すべてが期待どおりに進むと、ユーザーは探していた特定の情報にアクセスできるようになります。

したがって、まだ完了していないものを並べ替えて、かもしれない、またはそうでないかもしれない部分的な情報出力をユーザーに提供することを求めていますユーザーが探していました。

さらに悪いことに、ユーザーがいくつかの結果と遅延ロードを実行し、1つの結果をクリックしたとします。その後、より正確なものがあったため、元の結果のリストに戻りたいと考えています。驚き!これで結果はなくなり、ユーザーは希望する結果が見つかるまで(または見つからない!)、再度ロードを繰り返す必要があります。

誤解しないでください。私はこれを、特にeコマースで行っているサイトを見てきましたが、それが正しいとは限りません。基本的に、ユーザーには locus of control がなく、気にしないとユーザーに伝えていますまったく。さらに、あなたは故意に物事を行っているので、この制御の軌跡は失われます。

要するに

あなたはそれを行うことができ、それは技術的に可能です。しかし、ユーザーが minimalfriction で必要に応じて前後に移動できる適切なナビゲーションに対処することを強くお勧めします

1
Devin