私はDatatablesプラグインを使用して、ajaxプロパティを使用してサーバーからテーブルデータを取得し、dataSrcプロパティを使用して変換します。私のDataTableの定義:datatables ajaxレスポンスが成功するとdataSrc関数が呼び出されない
var my_table = $('#my_table').dataTable({
"processing": true,
"serverSide": true,
"ajax": {
"url": "/my/url",
"type": "POST",
"dataSrc": function(json) {
console.log('json', json);
return format_my_table_data(json.data);
}
},
"deferLoading": found_rows,
"data": initial_my_table_data,
"ordering": true,
"order": [[1, "desc"]],
"lengthMenu": [
[25, 50, 100],
[25, 50, 100]
],
"columns": my_table_columns
});
は初期の負荷が正常に動作し、列を注文し、時にはを作品を検索するが、ほとんど私は有効なJSONで正常にAJAX呼び出しの戻り値を参照してください(私はjsonlint.comを使用して検証)とテーブルがで立ち往生しています「処理中です...」またはテーブルがまったく変更されないことがあります。サーバから
JSON: {"recordsTotal":379,"recordsFiltered":378,"draw":25,"data":[{...}]}
に応じ600msの〜1600msの間の合計時間を有する各時間(類似しているiはAJAXリクエストが送信されて見ることができるコンソールでネットワークと応答を検査返された行数)、dataSrc関数内のconsole.logは呼び出されず、コンソールにはjavascriptエラーはありません。何がありますか?
サーバ上でリクエストで受け取った同じ「draw」パラメータを返していますか?要求と応答の 'draw'値が一致しない場合、プラグインは応答を破棄することがあります。 –
@ Gyrocode.com返された結果の数が描画値よりも小さい場合は、draw値が3の場合に3行しか見つけられなかったとしたらどうなるでしょうか?あるいは、私は "描く"ものを誤解しているかもしれません。 –