Foros del Web » Programando para Internet » PHP »

Laravel DataTables 20k Rows

Estas en el tema de Laravel DataTables 20k Rows en el foro de PHP en Foros del Web. Hola, estoy haciendo un sistema en Laravel que tiene 20.000 Clientes... estoy listandolos en la vista con DataTable (que permite ordenar por varias columnas y ...
  #1 (permalink)  
Antiguo 23/04/2019, 13:43
 
Fecha de Ingreso: julio-2009
Mensajes: 121
Antigüedad: 14 años, 8 meses
Puntos: 1
Laravel DataTables 20k Rows

Hola, estoy haciendo un sistema en Laravel que tiene 20.000 Clientes... estoy listandolos en la vista con DataTable (que permite ordenar por varias columnas y buscar entre otras cosas...)

Logré adaptarlo perfectamente y probé con 1000 clientes y tarda unos segundos y todo perfecto... pero al poner la base de datos real tiene 22.500 clientes y tarda 10 minutos en cargar

Lo que hace es cargar TOOOOODOS los ROW y luego paginarlos y mostrarlo bonito... hay alguna forma de que esto no sea así?
Tambien probé con el server-side pero lo mismo tarda un monton.

Estoy con Laravel 5.8 y el AdminLTE trabajando el panel de administración.
  #2 (permalink)  
Antiguo 23/04/2019, 20:14
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 1 mes
Puntos: 1146
Respuesta: Laravel DataTables 20k Rows

El DataTable que mencionas me parece que es un componente de jQuery, si es ese vas a tener que dejar de usarlo y buscar una alternativa.

Lo que te recomendaría es usar la función paginate de laravel para solo enviar una porción de los datos, con VueJS muestro la tabla y los filtros en lugar de ordenar los datos en pantalla que hagan una nueva consulta vía Ajax

Yo he hecho eso con mis últimos proyectos y me ha ido de maravilla,
  #3 (permalink)  
Antiguo 24/04/2019, 01:57
Avatar de baldaweb  
Fecha de Ingreso: septiembre-2010
Ubicación: Barco pirata
Mensajes: 244
Antigüedad: 13 años, 7 meses
Puntos: 20
Respuesta: Laravel DataTables 20k Rows

Imagino que usarás esto: https://datatables.net/

En un proyecto laravel uso este plugin, y tenemos listados grandes.

Te cuento la técnica.

Con llamadas ajax (5 simultáneas), sacamos bloques de datos (de 200 en 200).
Cuando termina una llamada ajax se llama a otra y siempre hay 5 llamadas ajax simultáneas.

Y el datatables se va rellenando poco a poco.

Por ejemplo una tabla de 16000 filas en 10 segundos se rellena.

El cliente tiene un progressbar para ver el porcentaje que le queda a la tabla por terminar.
__________________
CHOOO COOO LAAA TEEEEEEEEE

Etiquetas: datatables, laravel, rows
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 14:10.