Struts 2 & amp; Los archivos Dojo son demasiado pesados ??y afectan el rendimiento del sitio. ¿Algún remedio?

StackOverflow https://stackoverflow.com/questions/327820

Pregunta

Bueno ... hemos desarrollado una aplicación j2ee usando capacidades struts2 ajax. Encontramos que la implementación del dojo es bastante lenta. Hicimos lo siguiente: 1. Construcción personalizada de la biblioteca de dojo. (aumentado dojo.js de 240kb a 350kb) 2. Sacó todas las cosas estáticas del frasco de puntales y lo mantuvo afuera.

El rendimiento mejoró significativamente. Pero aún así es bastante pesado como puedes adivinar con un tamaño de 350kb ...

¿Se supone que struts2 ajax es tan pesado? o hay alguna implementación más ligera disponible?


Editar: utilicé Firebug y YSlow con mi aplicación. A continuación se mencionan algunos cambios que mejoraron enormemente mi situación:

  1. Compilación personalizada de dojo (reducido el número de E / S)
  2. Mueva los archivos estáticos fuera del frasco de Struts (ayudó mucho)
  3. sintonice su servidor para comprimir la respuesta (redujo el tamaño de la respuesta a 1/3)
  4. Reduzca el número de imágenes en su sitio (esto es obvio)

Continuará actualizándose en futuros cambios ..

¿Fue útil?

Solución

En primer lugar, compruebe que hizo todo en el servidor para facilitar el almacenamiento en caché (por ejemplo, configurar encabezados HTTP correctos, compresión, almacenamiento en caché del lado del servidor, cachés ascendentes, etc.). Consulte Mejora del rendimiento & # 8230; para obtener más detalles.

El objetivo es reducir la E / S tanto como sea posible & # 8212; use Firebug o cualquier otra herramienta de monitoreo de tráfico de red para ver cuánto se envía de un lado a otro. Intente minimizar la cantidad de solicitudes de E / S y la cantidad total de bytes.

No olvide que también se aplica a sus datos dinámicos & # 8212; elija formatos eficientes, agrupe varias solicitudes relacionadas, elimine todas las maderas muertas que se envían una y otra vez sin modificaciones.

Si la compilación personalizada y los ajustes del lado del servidor no ayudaron, considere reestructurar su aplicación web para que sea más liviana. Ejemplos:

  • Evalúe la técnica de la pantalla de presentación que se describe en el enlace anterior.
  • Si usa muchos widgets de formulario diferentes, vea si es realmente necesario y recurra a elementos DOM regulares como " input " ;, " button " ;, " textarea " ;, " select ".
  • Lo mismo ocurre con los widgets de diseño. Vea si CSS simple puede ayudarlo.
  • Evalúe la creación de Dojo en capas en lugar de un dojo.js monolítico, de modo que solo las páginas web carguen el subconjunto necesario. Ver detalles en El sistema de paquetes y las compilaciones personalizadas .

Construyendo aplicaciones web con Dojo para ganarse la vida durante los últimos 2 años, todavía no vi la que no se puede optimizar correctamente hasta que los usuarios finales la acepten y perciban como "rápida", "ágil" y " peso ligero " ;.

Otros consejos

Asegúrate de seguir primero estas preguntas frecuentes: http://struts.apache.org/2.x/docs/ performance-tuning.html

Por lo general, reescribo mi propio tema en lugar de usar el tema struts2 ajax que tiene incorporado el dojo. De esta manera puedo usar cualquier kit de herramientas que quiera usar (jQuery). Vi las mayores mejoras de rendimiento cuando copié la carpeta de plantillas del jar al directorio web raíz para la aplicación web.

La última vez que revisé, Struts estaba enviando un lanzamiento de Dojo (0.4) que está sucediendo hace 2 años. Dojo hizo una reescritura para la versión 0.9 / 1.0 que tuvo ganancias de rendimiento significativas y un tamaño de código reducido. Debes asegurarte de estar ejecutando una versión reciente de Dojo (la versión actual es 1.2.3) y usar la compilación y los consejos de Eugene, arriba.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top