2012-03-20 27 views
10

Ahora bien, esta será una pregunta muy absurda. Pero qué puedo hacer, es el requisito del cliente. Básicamente, tenemos una grilla (tipo maestro-detalle) que sube a cerca de 15 mil filas más (tiene el potencial de llegar a 30-50 mil filas en unos pocos años).10,000 + registros en html para renderizar rápidamente

Mi cliente NO quiere ninguna búsqueda, tampoco quiere que se recorte ningún dato. Además, él no está usando exactamente el hardware más reciente, por lo que renderizar en navegadores es un gran problema. Quiere ver todo imprimiéndolo o mirándolo en el navegador. (Todos pueden pensar cuán loco eso suena, y seguro).

Ahora quiero resolver este problema renderizando html rápidamente. Por el momento es una vista de cuadrícula de asp.net simple sin paginación. Eso esencialmente representa tablas HTML. Mis opciones que creo que son: - Renderizar manualmente html usando div (para carga rápida) - exportarlo a PDF o Excel (¿hay alguna forma de exportar sin la necesidad de recurrir a controles de terceros?) - dar el dedo (para el cliente: D j/k)

En resumen, ¿cuál es la mejor manera de mostrar 10.000 registros de datos en html?

+4

usted tiene opciones, utilice Nustache para representar objetos a html y luego anexar a un contenedor, use la tabla de datos YUI y, por último, puede usar el código del lado del cliente para usar Backbone.js para delegar una tabla de tipo de carga progresiva que cargue más filas a medida que se desplaza o pulse cargar más botón – Deeptechtons

+1

Las tablas largas * pueden ser lentas, ya que los navegadores (antiguos) necesitan leer toda la tabla antes de poder comenzar a diseñar la página. Tal vez una solución no tabla funcionaría mejor. –

+1

Debería considerar si la solución que le ofrezca a su cliente estaría contenta con el resultado. Me inclinaría más a simular una demostración usando controles de interfaz de usuario genéricos y permitiría al cliente ver qué tipo de experiencia de usuario podría esperar. su reputación podría sufrir, lo que no vale la pena por expectativas poco realistas. – Lloyd

Respuesta

7

considerar el uso del "desplazador" plug-in for Datatables ..

Como parte de tablas de datos 1.8 liberación de un nuevo plug-in llamado "desplazador" fue introducido como parte del paquete de descarga. Scroller es una implementación de desplazamiento virtual para DataTables, que presenta una tabla de desplazamiento vertical , desplazando la altura completa de la tabla, pero dibujando solo las filas que son necesarias para la visualización visible, , lo que lleva a un gran aumento de rendimiento. Este es un plug-in bastante emocionante para DataTables no solo para aumentar el rendimiento, sino también para porque proporciona de manera efectiva una nueva interacción del usuario con la tabla, , permitiendo el desplazamiento completo de conjuntos de datos muy grandes.

+0

Gracias por ese compañero :) investigando eso ahora. Saludos – xeshu

+0

bien, buena suerte .. – Lloyd

2

Debería hacer la búsqueda, no significa que debe mostrar solo una página de datos a la vez, sino que debe recuperar y mostrar la página a la vez (y seguir buscando páginas una tras otra hasta obtenerlas continuamente los datos están terminados).

Por ejemplo, envíe la primera página de datos del servidor en la solicitud inicial. Configure un temporizador js y use las solicitudes AJAX para recuperar páginas de datos posteriores y cargarlas en el navegador. Puede tener múltiples (por ejemplo, 3-4) solicitudes AJAX que se ejecutan simultáneamente para recuperar páginas; lo único que conseguiría es realizar el pedido correctamente en dicho enfoque.

Personalmente evitaré grid-view y renderizaré la tabla html usando java-script manual (con ayuda para jquery) o usaré algún motor de plantilla java-script. Usaré JSON para recuperar los datos del servidor.

+0

Dijo que no puede implementar la paginación debido a los requisitos del cliente. – TheBoyan

+0

@BojanSkrchevski, el cliente desea ver todos los datos juntos y no un mensaje a la vez. Lea detenidamente la respuesta: le estoy aconsejando que busque y recupere los datos, es decir, si continúa cargando la página llena de datos con el temporizador. – VinayC

+0

Ah, perdón, +1 :) – TheBoyan

2

Quiere ver todo mediante la impresión de

Esta es mi humilde opinión la única solución viable para ver toda la información. PDF o Excel es mucho mejor en el manejo de una gran cantidad de filas.

Hacer la representación es bastante fácil. Simplemente configure el tipo excel mime y devuelva una tabla HTML.

http://www.designdetector.com/archives/05/07/HTMLToExcelTheEasyWay.php

Cuando se trata de PDF, probablemente tenga que usar una biblioteca externa como PDFsharp.

+0

Saludos jgauffin. :) He estado buscando en pdfsharp y otros generadores de código abierto pdf. No me di cuenta de la estructura de la tabla simple, cambiar el tipo de mime lo abre en excel. Gracias por eso :) – xeshu

1

Sé que esto es casi un año tarde, pero en caso de que ayude a alguien.

Use SlickGrid - Usa divs en lugar de tablas, lo que le da mucho más rendimiento en IE. Compruebe esto example

Cuestiones relacionadas