Foros del Web » Programación para mayores de 30 ;) » Java »

Lentitud en Datatable

Estas en el tema de Lentitud en Datatable en el foro de Java en Foros del Web. Alguien podria ayudarme con este problema. Cree un datatable en un JSP de la siguiente forma. <script> oTableEndosoMayor2Anos = $('#tablaDinamicaEndosoMayor2Anos').dataTable( { "bJQueryUI": true, "aaSorting": [], ...
  #1 (permalink)  
Antiguo 21/10/2013, 14:50
 
Fecha de Ingreso: septiembre-2007
Mensajes: 27
Antigüedad: 16 años, 7 meses
Puntos: 0
Lentitud en Datatable

Alguien podria ayudarme con este problema.

Cree un datatable en un JSP de la siguiente forma.

<script>
oTableEndosoMayor2Anos = $('#tablaDinamicaEndosoMayor2Anos').dataTable(
{ "bJQueryUI": true,
"aaSorting": [],
"oLanguage": {
"sProcessing": "Procesando...",
"sLengthMenu": "Mostrar _MENU_ registros",
"sZeroRecords": "No se encontraron resultados",
"sInfo": "Mostrando desde _START_ hasta _END_ de _TOTAL_ registros",
"sInfoEmpty": "Mostrando desde 0 hasta 0 de 0 registros",
"sInfoFiltered": "(filtrado de _MAX_ registros en total)",
"sInfoPostFix": "",
"sSearch": "Buscar:",
"sUrl": "",
"oPaginate": {
"sFirst": "Primero",
"sPrevious": "Anterior",
"sNext": "Siguiente",
"sLast": "Último"
}
}
}
);
</script>

La consulta que entrega los datos es de 11.000 registros aprox. la cual se demora una eternidad y cuando cancelo el Script me carga la informacion pero no en su totalidad, podria alguien indicarme como puedo optimizar DataTable para esta cantidad de registros.

Gracias
  #2 (permalink)  
Antiguo 22/10/2013, 07:48
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Lentitud en Datatable

Es javascript más que java, por lo que el foro no es el correcto.

De todas formas, DataTable tiene un parámetro bServerSide que debes poner a true para indicarle al DataTable que no se tiene que traer todos los datos y la parte de la paginación se hace en el servidor, así sólo va al navegador una página de datos. Un ejemplo en la documentación http://datatables.net/release-datata...rver_side.html

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 22/10/2013, 12:41
 
Fecha de Ingreso: septiembre-2007
Mensajes: 27
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Lentitud en Datatable

Gracias por tu respuesta pero lei la documentación y no entiendo como adaptarla a mi codigo, ese es mi codigo con el que lleno la grilla.

function buscarPolizas(){
var fecha = $("#fechaBusquedaId").val();
var ramo = $("#boxRamo option:selected").val();

var url = 'endosoReaseguroMayor2Anos.do';
var params = 'accion=recuperarPolizas&fecha=' + fecha +'&ramo=' +ramo;

$.ajax({
url: url,
data:params,
dataType:"json",
success: function(data){
oTableEndosoMayor2Anos.fnClearTable();
if(parseInt(data.listaPolizasMayor2Anos.length) > 0){
$.each(data.listaPolizasMayor2Anos, function(k, v) {
var newRow = oTableEndosoMayor2Anos.fnAddData(
[
''+v.POL_NRO+'',
''+v.POL_ULTENDOSO+'',
''+v.ASE_NOMBRE+'',
''+v.VIG_INI+'',
'<img onclick="seleccionarContratoFacultativo(this,'+v.P OL_NRO+','+v.POL_ULTENDOSO+','+v.ASE_NOMBRE+')" src="./images/iconos/contrato.png" title="Facultativo" /><img onclick="replicarDistribucion(this,'+v.POL_NRO+',' +v.POL_ULTENDOSO+')" src="./images/iconos/copiar.png" title="Replicar" />'
]
);
oTableEndosoMayor2Anos.fnGetNodes(newRow).id = "tr"+v.POL_NRO+v.POL_ULTENDOSO;
});
}
},
error: function (jqXHR, timeout, message) {
var contentType = jqXHR.getResponseHeader("Content-Type");
if (jqXHR.status === 200 && contentType.toLowerCase().indexOf("text/html") >= 0) {
// asume que la session ha expirado - recarga la pagina
alert("Su session ha expirado \nStatus : "+jqXHR.status+"\nMensaje : "+message);
window.location.reload();
}else{
alert("error al recuperar polizas \nStatus : "+jqXHR.status+"\nMensaje : "+message);
//$("#coberturaDisponibleFormId").unblock();
}
}
});

return false;
}

el data.listaPolizasMayor2Anos tiene todos los registros de mi consulta.
  #4 (permalink)  
Antiguo 23/10/2013, 08:03
 
Fecha de Ingreso: octubre-2013
Mensajes: 8
Antigüedad: 10 años, 6 meses
Puntos: 3
Respuesta: Lentitud en Datatable

Buenas tardes.

Lo que te indican es lo correcto.

Cuando tengo algun problema de desempeño en alguna aplicacion siempre me pregunto dos cosas.

¿Que estoy haciendo mal?
¿Que estoy haciendo de mas?

Suponiendo que la respuesta a lo primero sea nada, pues te enfrentas a un error tipico, cuando se pretende llevar a capa de presentacion el resultado de una consulta, muchas veces se comete el error de enviar o pretender paginar mucha mas informacion de la que se va a mostrar.

Yo en estos casos suelo cargar solo el fragmento que voy a mostrar en capa de presentacion, ademas por cosa mia, experiencia o como le llames prefiero entregarle la menor responsabilidad al lado de java script. De hecho en java alguna vez intente hacer lo mismo que haces tu y termine construyendo la tabla html en un for de java, recorriendo una lista de arrays (los registros) solo con un par de indices que me indicaban de donde hasta donde estaba paginando.

Bueno y todo eso evitando decir que por cada registro estas instanciando un src de un img que si son tantos registros eso al final carga mucho

Etiquetas: datatable, jsp, lentitud
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:12.