0

いくつかの異なるプロバイダーからの WS 要求を通じて得られた結果がいくつかあります。次に、結果を収集して並べ替え、ユーザーに表示します。

結果の数は 0 ~ 60 ~ 70 の間で、平均は 10 ~ 20 です。私の問題は次のとおりです。ページネーションを処理する方法は? 私はそれを行うためのいくつかの方法を見つけたので、自分の状況に最適な解決策を見つけようとしています...そして、他の良い(おそらくより良い)解決策を見逃していると確信しています...私が考えた解決策今まで:

1) 各ページ (15 件の結果) に対して、Web サービスによる新しい集計検索を作成します。これはばかげていますが、結果の平均数は 10 ~ 20 であるため、ページネーションは頻繁に使用されません。

2) すべての結果を一時キャッシュとしてデータベースに保存し、一度に 15 個の結果を表示する

3) すべての結果を 1 つのページにロードするが、Jquery ページネーション プラグインを使用して 15 ページのみを表示する (クライアント側?)

4

2 に答える 2

1

いつの日か Web サービスがこれ以上多くの結果を返さなくなると本当に確信していますか? そのうちの 1 つにバグが発生し、誤って同じ結果のコピーが 50,000 回返されたらどうしますか? 各ソリューションで:

  1. 結果の数が予想よりも多いと、ユーザーがページをめくるたびに、同じ結果に対する要求を繰り返して Web サービスにスパムを送信する原因となります。

  2. 結果の数が予想よりも多いと、データベース内のスペースが一時的に占有されます。また、Web アプリでは、キャッシュをクリアするタイミングをどのように知るのでしょうか?

  3. 予想よりも多くの結果がユーザーのブラウザーに巨大なページとして表示され、すべてがダウンロードされるまで正しくレンダリングされない可能性があります。

私はオプション 3 が本当に気に入っています。キャッシュはデータが必要な場所で行われ、Web サービスへの冗長なヒットはなく、ページングは​​ユーザーにとって非常に高速です。

返される結果が 60 ~ 70 を超えないことが確実である場合、および/またはユーザーが非常に多くの結果を必要としないことが確実な場合は、オプション 3 と返される結果の数の上限を組み合わせることができます。 .

Web サービスが誤った/予期しない結果を返すという最悪のケースでも、最初の非常に多くの結果をトリミングしてブラウザーに送信し、そこで JavaScript を使用してページ付けすることができます。

于 2012-04-12T16:54:47.360 に答える
1

1 つの結果の大きさにもよりますが、最大 60 ~ 70 の結果がある場合、特に頻繁ではない場合は、ページネーションを使用しないことをお勧めします。ユーザー エクスペリエンスの向上。

于 2012-04-11T23:42:45.743 に答える