2009-08-10 5 views
1

Je suis actuellement en train de mettre en œuvre un YUI datatable en tant que spectateur réutilisable pour afficher des rapports de vente (et d'autres choses) pour un usage interne. Le problème est que la plupart de ces rapports sont longs et dépassent parfois 1000 lignes et que les performances côté client deviennent un problème même sur les machines plus récentes et plus rapides. Pour diverses raisons, la pagination côté serveur n'est pas une option pour nous (surtout parce que cela poserait problème lors de l'exportation d'un rapport vers une feuille de calcul - vous ne voulez pas les mêmes résultats paginés). Donc, ma question est ... comment puis-je améliorer les performances d'un YUI sans recourir à la pagination côté serveur?YUI Datatable & Large Data Set w/o Pagination

+3

1000+ lignes seront difficiles sur n'importe quel navigateur sur n'importe quelle machine .... – BigBlondeViking

Répondre

4

Ce que vous voulez est client side pagination. Le plus grand impact que DataTable a sur l'interface utilisateur est dans la phase de rendu. Les tableaux sont très compliqués à rendre pour les navigateurs même par eux-mêmes. Ajouter toutes les fonctionnalités dynamiques disponibles dans DT et vous pouvez voir un certain décalage de l'interface utilisateur réelle.

Envoyez toutes vos données au client. Avec la pagination côté client, l'interface utilisateur est plus réactive et conviviale.

Si ce n'est pas une option, configure renderLoopSize à environ 200 ou 300. Cela va tronquer la sortie des lignes à 200 ou 300 à la fois, ce qui limite le nombre de reflows que votre page va souffrir.

1

Peut-être que vous pourriez toujours utiliser lors de l'affichage résultat pagination à un utilisateur, et quand il vient à l'exporter chargera tout pas encore chargé des lignes?

+0

Je pense à essayer ceci aussi .. Je ne suis pas trop excité à l'idée de ne pas avoir tous mes résultats dans un écran, mais si je ne peux pas obtenir de meilleures performances sans pagination, Je devrais avoir recours à la pagination côté client. –