Tabla JavaScript receptiva para cargar 20k registros en 2 o 3 segundos

Estoy buscando una tabla de JavaScript receptiva que cargue y maneje al menos 20k registros en 2 o 3 segundos y tenga muchas opciones:

  • CSV
  • Copiar al portapapeles
  • Exportar Excel, PDF, texto, PNG, Word, JSON
  • Columnas visibles

Debe ser de código abierto.

Aquí están los que he encontrado:

Esto no parece una cantidad significativa de datos, incluso por un solo segundo, por lo que probablemente dice que tiene "muchas opciones". ¿Puedes darnos más requisitos? Por ejemplo, ¿son estos registros particularmente grandes? ¿Qué les pasa a los que nombras? Por cierto, si tarda tanto, muestre un indicador de progreso ( ux.stackexchange.com )
Además, puedes considerar una “mesa virtual”. Esa es una tabla que almacena todos los 20k registros en la memoria, pero solo muestra 20 o 30, en una ventana deslizante en la pantalla en cualquier momento. Dado que es la pantalla la que toma el tiempo real y la memoria, esta técnica existe desde hace mucho tiempo.

Respuestas (3)

Las tablas de datos deben admitir registros grandes, incluso del lado del servidor . Si necesita ayuda para transferir datos a través del cable más rápido, es posible que necesite una API de transmisión o algún método ajax como comet.

jqGrid u otra biblioteca jQuery también debería funcionar bien

Si la carga sobre el cable es lo que pretendía preguntar, tal vez cambie el título o haga otra pregunta.

Cargar 20.000 debería ser el máximo extremo que debería implementar. Supongo que alrededor de 5k a 10k de carga de datos en una sola vez, podría funcionar para alguna tarea y cargar otro lote mientras el usuario navega por la mitad de ellos. Pruebe su escenario en el navegador de línea inferior, o incluso en el navegador móvil para la fila máxima que desea lograr

He usado DataTables en el pasado. Tiene una buena API y documentación. Es posible que deba controlar cómo se cargan sus registros de 20k, en lugar de intentar encontrar una herramienta que cargue estas filas de 20k de una sola vez.

¿Por qué el rendimiento aún no está fijado en las tablas de datos? ¿Hay alguna solución para superar el problema de rendimiento? ¿Se puede incorporar cualquier solución que se haya hecho en una cuadrícula elegante u otra cuadrícula en las tablas de datos? 20k es mucho menos en una aplicación empresarial.
¿Quiere decir que hay usuarios que necesitan leer 20k de filas de una sola vez? Deberías intentar usar la paginación. La paginación debe romper los 20k en 40 o más páginas, lo que permitirá que la página se cargue en 2 o 3 segundos y el botón de descarga debe descargar todos los datos.
Aquí puede encontrar más información sobre la paginación y las opciones que tiene. datatables.net/examples/basic_init/alt_pagination.html
la paginación interrumpe la búsqueda en toda la tabla... ¿podemos buscar en registros completos aunque la paginación esté configurada?
En esta demostración parece estar funcionando bien... phpflow.com/php/…
Son solo 568 registros y no 20,000 registros.
Tal vez deberías preguntarle a DataTables al respecto. Debe haber una razón por la que funciona con 568 registros y no con 20k. También puede consultar estas preguntas frecuentes datatables.net/faqs/#General-initialisation

La cuadrícula DHTMLX es lo que uso para cualquier interfaz de usuario de JavaScript.

Combinado con el conector DHTMLX en el lado del servidor, puedo generar tablas con millones de registros en tiempo cero.

Cómo funciona:

  • La cuadrícula de javascript está configurada e inicializada en el cliente, el parámetro smartrendering se establece en ture y la cantidad de registros para procesar se establece en 100
  • a medida que la cuadrícula carga sus primeros datos, automáticamente le preguntará al servidor la cantidad de filas que deberán procesarse y la lista de los primeros 100 registros
  • cuando el usuario se desplaza o filtra, las solicitudes se reenvían automáticamente al servidor, que presenta de inmediato el conjunto limitado de datos necesarios para mostrar en la interfaz

Nota: DHTMLX es de código abierto, pero también hay una solución PRO un poco más fácil de usar que puede comprar.

No estoy afiliado a DHTMLX.

"Puedo renderizar tablas con millones de registros en tiempo cero"... O'rly?
:-) no, solo pruebas empíricas