私はdatatablesをajaxデータ要求(json形式)と動的列の読み込みで使用しています。これは私の実際のコードです:データ型:動的な列と大量のデータ
var tableData;
var tableName='#iuprTable';
$(document).ready(function(){
jQuery.ajax({
type : "GET",
url : "table/"+document.getElementById("hiddenIdCar").value,
headers: {'Content-Type': 'application/json'},
beforeSend: function() {
waitingModal.showPleaseWait();
},
success: function(data,status,xhr){
//No exception occurred
if(data.success){
tableData = data.result;
$.each(tableData.columns, function (k, colObj) {
var str = '<th data-html="true" data-toggle="tooltip" title="<b>NAME</b>:'+ colObj.parName + '<br><b>DESCRIPTION</b>:' + colObj.description + '<br><b>NOTE</b>: ' + colObj.note + '"></i>' + colObj.parName + '</th>';
$(str).appendTo(tableName+'>thead>tr');
});
} else {
waitingModal.hidePleaseWait();
notifyMessage(data.result, 'error');
}
},
error: function(xhr,status,e){
window.location.href = "/500";
}
}).complete(function() {
//initialize datatable
if (! $.fn.DataTable.isDataTable(tableName)) {
var iuprTable = $(tableName).DataTable({
scrollCollapse: true,
scrollX: true,
scrollY: '60vh',
paging: false,
"data": tableData.data,
"columns": tableData.columns,
fixedColumns: {
leftColumns: 4
},
"initComplete": function(settings){
//TOOLTIP cell
$(tableName+ ' tbody td').each(function (k, cellObj){
this.setAttribute('title', cellObj.innerText);
this.setAttribute('data-toggle', "tooltip");
});
$('[data-toggle="tooltip"]').tooltip({
container: 'body'
});
//add timeout because otherwise user could see a too fast waiting modal
setTimeout(function(){
waitingModal.hidePleaseWait();
}, 1000);
}
});
}
else {
iuprTable.ajax.url("table/"+document.getElementById("hiddenIdCar").value).load();
}
});
});
function notifyMessage(textMessage, typeMessage){
$.bootstrapGrowl(textMessage, {
type: typeMessage, // (null, 'info', 'error', 'success')
});
}
私は300行300列を持つかもしれないので、この数字はページが遅くなります。私はサーバー側の処理について読んで、どのようにパフォーマンスを向上させることができるのだろうかと思っていました。 私は2つのソリューションを発見した:
1)サーバ側の処理を:のみ示した行サーバーに
2)クライアント側に尋ねる:JSONはすべての行を返しますが、唯一のいくつかのそれらのは、特定の時間にあったされていますユーザーがスクロールするとデータが更新されます(ページは最初の読み込み後に速くなります)。
最初の解決策は、Webサービスを変更する必要があるため、クライアント側の処理よりも複雑です。あなたは私に助言をしていますか?どのようにこれらのソリューションを実装できますか?制限と確かにパフォーマンスが向上しますそれぞれの紹介の列を持つページあたり50など
とインデックスデータベースのオフセットと感謝
あなたはすでにあなたの選択を知っているようですので、#1はパフォーマンス上のメリットがあり、#2は実装が簡単です。 –
はい、私は特にそれらを動的データでどのように実装できるのか分かりません – luca