Tengo una tabla HTML que puede tener más de 1K filas y una docena de columnas.Cómo evitar el costo de rendimiento del desbordamiento: ¿oculto?
Quiero que las columnas tengan un tamaño fijo (controlable por el usuario) y no crezcan/contraigan ni vertical ni horizontalmente. De manera visual, el contenido de una celda de tabla particular estará en una línea y el desbordamiento se cortará al final de la celda.
Haciendo análisis de rendimiento en Chrome en una gran mesa el principal asesino de rendimiento es desbordamiento: oculto.
He intentado poner el contenido de cada celda dentro de una entrada, ya que eso replicaría el mismo comportamiento visual, pero eso tiene un impacto similar en el rendimiento.
¿Qué recomiendan las personas para mejorar el rendimiento?
Si es necesario, no tengo que usar una etiqueta de tabla, pero preferiría seguir con la etiqueta de tabla si se puede lograr un buen rendimiento.
Actualización 1: He incluido un archivo que muestra el problema de rendimiento here. Advierta que el archivo es bastante masivo (25MB) y ralentizará su computadora. De forma predeterminada, la tabla no tiene el desbordamiento establecido en oculto, y una vez que la tabla se ha cargado (puede tomar un tiempo) el rendimiento del navegador es relativamente sencillo.
Sin embargo, si edita el archivo y descomenta las líneas 12-15 y luego lo abre. Verá que después de cargar el navegador alrededor de la mesa es significativamente menos receptivo.
¿Hay algún motivo por el que no esté utilizando la paginación? –
Muchas razones en realidad. Principalmente desde una perspectiva UX. Pero es posible que tenga una situación en la que solo tenga 100 filas y la persona esté en una computadora lenta. Mejorar el rendimiento no solo beneficiará a los usuarios con muchos datos, sino a todos. –
¿Podría publicar una muestra del marcado y los estilos que está utilizando? Aquí: https://gist.github.com/2705929 He configurado una tabla de 12x1800, con más de 400 caracteres por celda. El rendimiento parece estar bien (aunque no estoy en una máquina lenta). – Beejamin