2010-02-07 5 views
0

Nous utilisons de grandes formes d'entrée avec deux champs d'entrée et rencontrons des problèmes de performances. Le problème exact est le temps de rendu du formulaire. Il faut quelques secondes (4-10sec) pour afficher le formulaire. Nous utilisons une disposition en plusieurs colonnes et ~ 30 champs de liste déroulante chargés par le magasin de données json et un autre ~ 10 champs d'entrée. Le processus de rendu est si lent que je peux voir l'alignement et le processus d'affichage du formulaire. Y a-t-il une méthode pour accélérer le processus d'affichage?Problèmes de performances d'extensions

+1

Je dois demander, comment utilisable est 30 champs de combo de toute façon? C'est un sacré tas de champs pour n'importe quelle forme. – Lloyd

+0

oui, c'est beaucoup de domaines, mais il est logique de le faire de cette façon. – Hubidubi

Répondre

0

Est-il possible que les données chargées par les JSONStores provoquent un changement d'alignement? Éteignez tous les JSONStores, puis mesurez le processus de rendu - vous verrez que cela prend assez de temps pour que le navigateur fasse 30 requêtes back-end!

0

Je suggère également que vos magasins sont le problème. Avez-vous essayé FireFox? Ou comme @JJ recommandé, ne pas charger les magasins et voir ce qui se passe. Je suggère également de rendre vos formulaires paresseusement, mais il semble que votre problème implique les magasins.

J'ai observé une lenteur similaire lors du chargement de magasins (les requêtes backend prennent généralement beaucoup de temps). J'ai donc créé un seul appel AJAX pour récupérer toutes les données du magasin. Dans le rappel AJAX, analysez le contenu de la charge utile et distribuez-la de manière appropriée à chaque magasin.

+0

Nous utilisons Firefox + Firebug pour le développement. Je ne pense pas que le problème original est les magasins json et les demandes (voir ma réponse ci-dessus). Je pense que la lenteur vient du rendu et de la mise en page. Il peut être vu par les yeux qu'il essaie d'aligner/redimensionner des parties de la forme pour les adapter. Bien que j'ai déjà dit que la version 3.1 a résolu la plupart de nos problèmes. – Hubidubi

1

Essayez d'obtenir toutes les données combobox dans une seule fente, puis charger les données en utilisant la méthode store.load

0

Cela peut être utile pour quelqu'un:

Nous avons même problème avec plusieurs cases à cocher et this après nous aide pour le résoudre.

Chaque fois que Form ou un autre conteneur ajoute un élément - sa mise en page recalcule. Cela provoque un problème de rendu lorsqu'il y a beaucoup d'éléments.

Ainsi, vous pouvez:

  1. Ajouter tous les enfants à une seule fois:
container.add(panel, button, grid); 
  1. Suspension recalcul de mise en page:
container.suspendLayout = true; 
    addSomething(); 
    container.suspendLayout = false; 
    container.doLayout();