meaning - gwt vs angular
GWT con múltiples páginas de host en una aplicación heredada (2)
Una de las formas en que GWT fue diseñado para ser utilizado es exactamente como lo usaste. Lo hemos hecho en muchas de nuestras aplicaciones, donde hay un módulo GWT con múltiples "partes" que se cargan en función de si existe un identificador determinado en una página o no. Entonces no veo que tengas ningún problema yendo por aquí. A menudo usamos este enfoque incluso para nuevas aplicaciones web, donde solo queremos algunos "widgets" en la página, en lugar de codificar toda la aplicación en GWT.
No hará una gran diferencia, pero una cosa que sugeriría es no poner el código de GWT javascript en su plantilla principal, sino solo colocarlo en las páginas que lo necesitan. Es cierto que si no está ejecutando HTTP, se almacena en caché básicamente para siempre, pero parece incorrecto que la gente cargue en el módulo si no es realmente necesario en esa página. Esto, por supuesto, depende de cómo la gente usa su sitio, si es probable que lo descarguen de todos modos, entonces no hará ninguna diferencia.
Estoy considerando utilizar GWT como front-end de una aplicación web existente .
No puedo justificar una reescritura completa al 100% de GWT de una vez. Es probable que migre gradualmente partes del sistema a GWT. Sin embargo, por coherencia, me gustaría utilizar GWT TabPanel, MenuBar, etc. como elementos de interfaz global desde el primer día.
Como un experimento para ver cómo se podrían incorporar partes ''heredadas'' del sistema, hice lo siguiente.
La plantilla de la página principal de la aplicación ahora carga un pequeño módulo GWT ''envoltorio'' en cada página. Este módulo GWT busca una selección de DIV en la página de host generada dinámicamente. Si se encuentra DIV, se coloca un widget adecuado en su lugar, es decir, menuBar, tabPanel.
Gran parte de la configuración para los widgets incluidos también se puede ubicar en la página de host como estructuras JSON. Por ejemplo, he implementado un adaptador que configura dinámicamente un TabPanel de esta manera. También agregué algunos widgets muy simples que cargan HTML remoto, etc.
Como prototipo, todo parece funcionar perfectamente y se carga rápidamente. Sin embargo, parece que las aplicaciones GWT están realmente diseñadas para ejecutarse desde una única página de host, no cientos de páginas generadas dinámicamente.
¿Alguien puede resaltar cualquier problema que pueda surgir con el enfoque anterior, particularmente a medida que el módulo GWT aumenta de tamaño? Me gustaría mantener el módulo de contenedor heredado intencionadamente delgado. Otra funcionalidad se implementaría en módulos separados.
¿Cómo han integrado otras personas GWT en su front-end de forma gradual?
Lo estás haciendo bien. Evite evitar evitar la tentación de tratar de ''minimizar'' la huella de GWT dividiéndola en múltiples aplicaciones separadas.
La clave del rendimiento de GWT es tener la menor cantidad posible de descargas y asegurarse de que estén en la memoria caché. Cargar un paquete de 250k una vez es mucho mejor que dos paquetes de 200k y debido a que la compresión es mejor con archivos más grandes, realmente comienza a cosechar beneficios a medida que crecen las cosas.
y-slow & firebug puede ser muy útil cuando se trata de convencerte de esto.
Un truco de rendimiento que puede consultar está disponible en el capítulo de ejemplos aquí: http://www.infoq.com/articles/progwt Muestra una minirquitectura sobre cómo cargar widgets GWT en cualquier cantidad de ranuras y rellenar datos en JavaScript. variables. Esto permite que sus widgets GWT se carguen y no requiera un segundo HTTP GET para obtener los datos que usan. En la práctica, descubrí que este fue un buen impulso en el rendimiento.