2011-08-09 12 views
8

¿Cuáles son las mejores prácticas para enviar una gran cantidad de datos de servidor a cliente en GWT?GWT La mejor práctica para enviar gran cantidad de datos del servidor al cliente

En este momento estamos enfrentando problemas de rendimiento en GWT 2.3.0.

Nuestro lado del servidor está enviando enormes xml (Tamaño en MB/GB) al lado del cliente, nuestro lado del cliente analiza ese xml y utiliza datos analizados, lista de beans formados para rellenar datos en la grilla Celltable.

Estamos cumplimentando 1k +/10k + registros en la cuadrícula de CellTable.

¿Hay alguna forma efectiva/se siguieron las mejores prácticas al tratar con datos tan grandes? Si analizamos los datos en el lado del servidor y formamos los beans en el lado del servidor, ¿esto es bueno? o de cualquier forma alternativa ..

Cualquier ayuda u orientación en este asunto sería apreciada.

+0

¿En qué medida se comprimen los datos? Tal vez comprimir - enviar - descomprimir puede ser más rápido si la demora está en la red. – rossum

Respuesta

6

Básicamente solo solicita tantos datos (y un poco más) de los que actualmente visualiza el usuario, no todo el conjunto de datos.

Consulte Adding Paging Controls para obtener más información.

3

Dos prácticas cuando se trata de grandes cantidades de datos para su caso:

1) Uso de JSON en lugar de XML, de esa manera el cliente no tiene que analizar los datos, pero se puede utilizar directamente los datos. En GWT a través de la interfaz GWT-JSNI puede escribir objetos de datos que accedan a estos objetos de JavaScript, consulte: http://code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsJSNI.html. Con una biblioteca JSON REST puede generar el JSON en el servidor en lugar de enviar xml al cliente. Pero también puede usar GWT-RPC en ambos clientes/servidores, lo que facilita la programación porque GWT maneja toda la conversión de datos hacia y desde JSON, pero agrega cierta información de tipo a los objetos enviados.

2) Use paginación: solo obtenga datos que sean visibles para el usuario y almacénelos en caché en el cliente. Si tiene una presentación de tabla, no es probable que el usuario necesite todos los datos a la vez. paneles de células GWT tienen apoyo fuera de la caja (ver el enlace Oliver menciona acerca de agregar controles de páginas)

2
  1. Uso paginación. Los widgets de celdas GWT admiten paginación lista para usar. Por lo tanto, implemente la paginación del lado del servidor para que cada vez que haga clic en 'siguiente' se realice una llamada al servidor. De esta forma, el cliente solo trata con, por ejemplo, 10 o 20 registros a la vez.

  2. Utilice los tipos de superposición de Javascript como beans de visualización. Y para llenar estos beans, use JSON como modelo de transporte en lugar de XML. Si usa XML (es decir, llamadas Async), GWT hace un poco de lógica de clasificación/desasignación de JAXB en el back-end. Si usa JSON, se evita mucho de eso.

Cuestiones relacionadas