0

特定の基準と特定のページング (開始インデックスと必要なアイテム数) を使用して、データベースからアイテムを取得するための遅延リストを作成しています。

リストのインスタンス化時に、マップされたテーブル内のアイテムの総数をカウントして、リストの初期サイズを取得します (リストではアイテムの追加と削除が許可されているため、 initial )

ほとんど機能しますが、フェッチするアイテムの具体的な数を決定するときにいくつかの問題があります。実際、ユーザーに特定のフェッチサイズを指定させます (この例では10としましょう)。

フェッチするアイテムの正確な数を決定するために、現時点では、コレクション内のアイテムの現在のインデックス(データベース テーブルから最後に取得されたもの) にフェッチ サイズ係数を追加します。結果が以下の場合合計数の場合、私は何のアクションも行いません (そしてフェッチは非常に明確に機能します) が、それが合計よりも大きい場合、フェッチする残りのアイテムの計算は失敗します。

実際には、残りのアイテム数を計算するには、コレクション内のアイテムの総数から、現在のインデックス+ 1 (インデックスは 0 から始まる) を引きますが、これはすべての条件で機能するとは限りません。

適切な係数を計算する方法についてのアイデアはありますか? どうもありがとうございました!

4

3 に答える 3

0

次のようなことをすべきだと思います:

items_to_fetch = min( current_index + fetch_size, total_count )
于 2009-03-19T12:44:40.593 に答える
0

どうですか:

items_to_fetch = max(0, min(fetch_size, total_count - current_index + 1))

また、キャッシュされた値ではなく、実行時に現在の合計数を取得するようにしてください。

于 2009-03-19T12:58:07.783 に答える