2008-10-09 6 views
0

J'utilise le gestionnaire de mise en page YUI qui semble fonctionner à une vitesse correcte. Toutefois, si la page contient un grand <Table> avec environ 500 lignes, la fonction YUI render() prend environ minute plus longtemps à exécuter.Puis-je accélérer le gestionnaire de disposition YUI, lorsque j'ai une grande table sur la page?

Lorsque j'ouvre la même page sans le gestionnaire de disposition, il s'ouvre en moins d'une seconde.

Mon seulement concerne IE 7. Je l'ai essayé sur Firefox et cela n'a pris que trois secondes.

Des idées sur ce qui prend si longtemps? Puis-je demander au gestionnaire de disposition d'ignorer la table?

+0

Ce sujet est-il trop spécialisé pour stackoverflow? – tpower

Répondre

5

J'ai finalement trouvé moi-même.

L'astuce consiste à masquer le contenu qui doit être ignoré par le gestionnaire de disposition. Avant d'appeler le render(), définissez le style.display = 'none' pour un tag contenant une partie importante de la page que vous n'avez pas besoin de gérer. Réglez-le à la normale après avec style.display = 'block'.

0

Voulez-vous dire que la méthode render() de votre grande table prend beaucoup de temps?

Le YUI DataTable a une propriété renderLoopSize spécifiquement pour ce type de situation. Il rend la table au DOM toutes les X lignes, plutôt que d'attendre la fin et de les restituer en une seule fois.

var myDataTable = new YAHOO.widget.DataTable("myContainer", 
         myColumnDefs, 
         myDataSource, 
         {renderLoopSize: 100}); 
Questions connexes