1

要件 :

datasetサーバーから大きなファイルをにロードしようとしていjQuery DataTablesます。

データ全体を一度にロードする代わりに、テーブルをチャンクごとにロードしたいと思います。ユーザーがページネーション インデックスをクリックすると、ajax 呼び出しで数百行がフェッチされます。

例 :

したがって、グリッドではページごとに 10 レコードのみが表示され、ページネーションは50 index( 10(records per page)*50(pages) = 500(records))までになります。500 recordsdatatable100

レコードのデータセットがあり1500ますが、一度にレコードを取得することしかできません500

私はさまざまな質問を調査してSOdatatable forumますが、これまでのところ解決策は見つかりませんでした.

Datatable フォーラム : クライアント側の遅延読み込みを実行しようとしています

4

1 に答える 1

0

サーバーについて何も知らないので、概念的な回答をします。基本的に、クライアントにはpage0 に初期化される変数があります。サーバーには、chunk10 に設定された変数があります。データをロードする必要があるたびに、パラメータとしてpageajax リクエストをインクリメントして送信しpageます。

次に、サーバーは をpage * chunk介し​​てデータベースに行を照会します(page * chunk)+chunk-1)。これには、すべての行を選択し、各行にインデックスを付けてから、適切なチャンクを取得する必要があります。-1for [inclusive,exclusive] チャンクに注意してください。

例:

page = 0; chunk start index = page * chunk = 0 chunk end index = page * chunk + chunk - 1 = 9

データベースから行 0 ~ 9 を取得します。

page = 1; chunk start index = page * chunk = 10 chunk end index = page * chunk + chunk - 1 = 19

データベースから行 10 ~ 19 を取得します。

page = 2; chunk start index = page * chunk = 20 chunk end index = page * chunk + chunk - 1 = 29

データベースから行 20 ~ 29 を取得します。

chunk呼び出しごとに必要なレコード数に変数を微調整できます。

于 2016-04-15T01:28:07.027 に答える