2016-11-22 2 views
0

に制限されています。ページ設定とソートにはdatatablesプラグインを使用しています。最初にページを読み込んでいる間にグリッドがデータベースのすべてのレコードを取得すると、レコードの値が10に制限されます。ページが反応しないように見えるので、非常に多くのデータがロードされます。 最初に読み込んでいる間、レコードの数を10に制限したいと思います。グリッドは反応します。私のコードの 例:あなたは、あなたのWebサービスのための「AJAX」URLを定義して、trueに「サーバーサイド」オプションを設定する必要がありますアドバンス最初にページをロードしている間、グリッドはデータベースのすべてのレコードをフェッチします。レコード値は1

答えて

0

var options = { 
bsort: true, 
"bFilter": false, 
"sPaginationType": "full_numbers", 
aoColumnDefs: [ 
{ 
aTargets: [ 0 ], 
bSortable: false, 
}, 
{ 
aTargets: [ 9 ], 
bSortable: false, 
} 
] 
}; 
$('#Table_ID').DataTable(options); 

感謝。また、DataTableのajax関数を使用する場合、応答データは次のような "data"属性であることに注意してください。

返されるJSON - オブジェクト配列表記。

{ "data": [{...}, {...}, {...}]} 

返さJSON - 配列の表記法の配列:あなたは名前のそれはベイにマップする属性を定義することができますので、「列」オプションを指定する必要があります返されたJSONの最初のスタイルで

{ "data": [[...], [...], [...]] } 

その配列に含まれるオブジェクトの "data"属性を設定します。

最後に "serverside"をtrueに設定すると、サーバー上のすべてのソート、フィルタリングなどを実行することが期待されます。

EDIT:今日は入力できません。場所のいたるところに単語がありません。

+0

thr返信ありがとうございます。私はこれを試してみましょう。 ajaxなしでやるべき他の提案がありますか?私は完全なコードを完了したので、私はすべてのリワークを行う必要があります。最初にd limitを10に制限するだけで済みます。 –

+1

説明しているユースケースに対してサーバーサイド処理を使用する方が良い解決策はありません。ここにその例があります:https://datatables.net/examples/data_sources/server_side.html – Mike

+0

@KishoreJn DataTablesに遅延読み込みオプションがあり、オブジェクトのような「ビュー」を使用して構築された最初のページから開始することができます(jsp、php、...など)ので、インサイトページのロード時にサーバサイドコールは必要ありません。私はそれ自身を使用していないので、あまりにも助けることはできませんが、私はそれが需要に応じて負荷を提供し、その後クライアント側のソートとフィルタリングを行うことができるということを理解しています。大規模なデータセットや計算集約型のフィルタリングを使用していない場合は、クライアントサイドのソート/フィルタリングによりアプリケーションのスケーラビリティが向上します – Adrian

関連する問題