Ich verwende datatables mit AJAX-Datenanforderung (JSON-Format) und dynamische Spalten laden. Dies ist mein eigentlicher Code:Datatables: dynamische Spalten und riesige Datenmengen
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')
});
}
Da ich 300 Zeilen und 300 Spalten aufweisen kann, mit diesen Zahlen der Seite langsam wird. Ich habe über serverseitige Verarbeitung gelesen und mich gefragt, wie ich die Leistung steigern kann. Ich habe 2 Lösungen gefunden:
1) Server-Seite Verarbeitung: fragen zu Server nur die zeigten Reihen
2) Kunde: die json alle Zeilen zurückgibt, aber nur einige von ihnen in einer bestimmten Zeit zeigte Wenn der Benutzer scrollt, werden die Daten aktualisiert (die Seite ist nach dem erstmaligen Laden schneller).
Die erste Lösung ist am kompliziertesten als clientseitige Verarbeitung, weil ich Webdienste ändern sollte. Hast du einen Ratschlag für mich? Wie kann ich diese Lösungen implementieren? Dank
Sie scheinen, Ihre Wahlen bereits zu kennen, also kann ich nur sagen, dass # 1 mehr Leistungspotential hat, # 2 ist einfacher zu implementieren. –
ja, aber ich weiß nicht, wie ich sie besonders mit dynamischen Daten implementieren kann – luca