2010-06-18 11 views
7

Estoy usando un complemento jQuery llamado Tablesorter para hacer la ordenación del lado del cliente de una tabla de registro en una de mis aplicaciones. También estoy haciendo uso del complemento tablepager.javascript table sorting/paging (lado del cliente). ¿Cuán grande es muy grande?

Me gusta mucho la capacidad de respuesta que la clasificación y la localización del lado del cliente aportan a la fiesta. También me gusta cómo no tiene que golpear el servidor web o la base de datos repetidamente.

Sin embargo, puedo ver que, con el tiempo, el registro que estoy mostrando podría crecer bastante. Estoy seguro de que llega un momento en que las paginación y clasificación del lado del cliente no serán prácticas. ¿Qué punto comenzará a colapsar esta técnica por su propio peso? 500 registros? 2000 registros? 10,000 registros?

EDIT: En pocas palabras, ¿qué criterios usaría para determinar si va a utilizar la clasificación/paginación del lado del cliente en lugar de la paginación del lado del servidor? ¿El tamaño del resultado esperado establece el factor en su decisión? ¿Dónde está el punto de inflexión?

+0

Aparte de esto, dependiendo del tamaño de los registros, tendrá que transferir una gran cantidad de datos al cliente, cada vez que se solicite la tabla; esto podría costar mucho ancho de banda y, dependiendo de la velocidad de la conexión, el tiempo. –

Respuesta

3

Sin embargo, puedo ver que, con el tiempo, el registro de estoy mostrando podría llegar a ser muy grande . Estoy seguro de que viene un punto donde la paginación y clasificación del lado del cliente va a ser impracticable. ¿Qué punto esta técnica comenzará a colapsar bajo su propio peso? 500 registros? 2000 registros? 10,000 registros?

Esto realmente depende de muchas cosas diferentes como el número de tabla de columnas y qué navegador y versión está usando la persona.Rutinariamente puedo ordenar hasta 1000 registros antes de ver un problema real. Si comienzas a acercarte a este número, definitivamente comenzaría a buscar la clasificación del lado del servidor. Con AJAX, la clasificación del lado del servidor puede ser bastante eficiente y tener una experiencia de usuario decente.

La mejor manera de ver su situación particular es probarlo y ver. Los navegadores aunque realmente no están diseñados para manejar grandes cantidades de datos de esa manera, aún pueden manejarlo. La experiencia del usuario será abismal, pero la cantidad de registros que puede manejar es bastante alta.

+0

De hecho, es (casi) totalmente dependiente del tamaño de la memoria del cliente y la velocidad del hardware (e incluso la velocidad del motor de JavaScript del navegador). –

3

Esta técnica probablemente colapsará cuando el navegador o el host del cliente no puedan tomarla.

Utilice la paginación del lado del servidor para evitar esto.

Primero consideraría la cantidad de datos que estoy enviando al cliente, lo que a su vez causa el factor tiempo de carga.

Digamos que si cada fila de la tabla es de 200 bytes, y estoy enviando 10000 filas al cliente (lo que permite la ordenación y paginación del cliente), envío 200 * 10000 = 2,000,000 de bytes, también conocido como 2 MB. Esto le tomará bastante tiempo al navegador cargarlo desde el servidor, luego, un tiempo para que el complemento de ordenación lo ordene todo, luego pagine un tiempo para buscarlo.

De hecho, la carga del servidor aumentará con la necesidad de enviar TODAS las filas al cliente.

Normalmente, con tantos datos e iteraciones para que Javascript maneje, el navegador (Firefox o similar) se bloqueará y parecerá que está fallando.

Si usa la ordenación del lado del servidor + paginación, el cliente ve la información precisa y actualizada. También digamos que tiene las mismas 10000 filas, cada 200 bytes. Tienes 20 filas por página. Solo está enviando 20 * 200 = 4000 bytes, que son 4 KB, relativamente pequeños y pueden ser manejados por el navegador/servidor.

+0

Estaba buscando una respuesta que me diera un poco más de orientación. Editaré mi pregunta para aclarar eso. – Aheho

+0

actualizado. gracias por más información; eso es lo que necesitábamos. – mauris

3

Algunos cientos probablemente estén bien, dependiendo del número de columnas. Esto seguramente se descompondrá cuando trates datos del orden de 10^3 (miles).

Estos han sido mis hallazgos empíricos en diferentes navegadores, pero usualmente estaba en un hardware fornido. Limitaría su conjunto de datos a cientos.

Cuestiones relacionadas