Struts 2 & amp; Les fichiers Dojo sont trop volumineux et affectent les performances du site. Des solutions?

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

Question

Eh bien ... nous avons développé une application j2ee utilisant les fonctionnalités ajax de struts2. Nous constatons que la mise en œuvre du dojo est assez lente. Nous avons fait les choses suivantes: 1. Construction personnalisée de la bibliothèque de dojo. (augmentation du nombre de dojo.js de 240 Ko à 350 Ko) 2. a retiré tous les objets statiques du bocal et les a laissés à l’extérieur.

Les performances ont été considérablement améliorées. Mais il reste assez lourd, comme vous pouvez le deviner, avec une taille de 350 Ko.

Est-ce que struts2 ajax est supposé être aussi lourd? ou existe-t-il une implémentation plus légère disponible?

Edit: J'ai utilisé Firebug et YSlow avec mon application. Quelques changements qui ont énormément amélioré ma situation sont mentionnés ci-dessous:

  1. Construction personnalisée du dojo (réduction du nombre d'E / S)
  2. Déplacez les fichiers statiques du fichier Struts (aide beaucoup)
  3. syntonisez votre serveur pour gzip la réponse (réduction de la taille de la réponse à 1/3)
  4. Réduisez le nombre d'images sur votre site (c'est évident)

Restera à jour sur les modifications ultérieures.

Était-ce utile?

La solution

Tout d’abord, vérifiez que vous avez tout fait sur le serveur pour faciliter la mise en cache (par exemple, en définissant les bons en-têtes HTTP, la compression, la mise en cache côté serveur, les caches en amont, etc.). Voir Amélioration des performances & # 8230; pour plus de détails.

L'objectif est de réduire autant que possible les E / S & # 8212; Utilisez Firebug ou tout autre outil de surveillance du trafic réseau pour voir le montant des allers-retours. Essayez de minimiser le nombre de demandes d’E / S et le nombre total d’octets.

N'oubliez pas que cela s'applique également à vos données dynamiques & # 8212; choisissez des formats efficaces, regroupez plusieurs demandes connexes, supprimez tout le bois mort qui est envoyé sans cesse inchangé.

Si la construction personnalisée et les modifications apportées du côté serveur ne vous ont pas aidé, envisagez de restructurer votre application Web de manière plus légère. Exemples:

  • Évaluez la technique d'écran de démarrage décrite dans le lien ci-dessus.
  • Si vous utilisez un grand nombre de widgets de formulaire, vérifiez si cela est vraiment nécessaire et utilisez des éléments DOM classiques tels que "entrée", "bouton", "texte", "sélectionner".
  • Il en va de même pour les widgets de présentation. Voyez si un simple CSS peut vous aider.
  • Evaluez la construction du dojo en couches au lieu d'un dojo.js monolithique afin que seul le sous-ensemble nécessaire soit chargé par les pages Web. Voir les détails dans Le système de packages et les versions personnalisées .

Construire des applications Web avec Dojo comme métier depuis 2 ans. Je ne voyais toujours pas celle qui ne pourrait pas être optimisée correctement avant d’être pleinement acceptée et perçue par les utilisateurs finaux comme "rapide", "agile", et "Léger".

Autres conseils

Assurez-vous de suivre d'abord cette FAQ: http://struts.apache.org/2.x/docs/ performance-tuning.html

Je réécris habituellement mon propre thème au lieu d’utiliser le thème ajax de struts2 qui contient un dojo. De cette manière, je peux utiliser le toolkit que je veux utiliser (jQuery). Les améliorations les plus importantes en termes de performances ont été constatées lorsque j'ai copié le dossier des modèles du fichier jar dans le répertoire Web racine de l'application Web.

La dernière fois que j'ai vérifié, Struts livrait une version de Dojo (0.4) vieille de 2 ans. Dojo a réécrit la version 0.9 / 1.0 avec des gains de performances significatifs et une taille de code réduite. Assurez-vous que vous utilisez une version récente de Dojo (la version actuelle est la 1.2.3) et utilisez la version et les conseils d’Eugene ci-dessus.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top