IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Gridview et lenteur


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut Gridview et lenteur
    Bonjour,

    j'utilise un gridview avec pagination pour afficher des donnees, tout se passe bien. Par contre une demande fonctionelle vient se rajouter. Les utilisateurs veulent avoir le controle sur le PageSize, mon soucis est lorsque le pagesize est elevé alors l'affichage est tres tres lent du au poids du HTML genere.

    Comment puis je palier à cela.

    Merci

  2. #2
    Membre éprouvé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Par défaut
    Utilise le mode trace pour voir d'ou vient reellement ton probleme.

  3. #3
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Citation Envoyé par topolino Voir le message
    Bonjour,

    j'utilise un gridview avec pagination pour afficher des donnees, tout se passe bien. Par contre une demande fonctionelle vient se rajouter. Les utilisateurs veulent avoir le controle sur le PageSize, mon soucis est lorsque le pagesize est elevé alors l'affichage est tres tres lent du au poids du HTML genere.

    Comment puis je palier à cela.

    Merci
    Malheureusement, pas de solutions miracle à ceci! Il faut tout simplement limiter le pagesize à un range acceptable pour l'utilisateur au niveau du contenu et des performances. Pour demander plus, il faut passer par une autre méthode comme génerer un rapport sur un server etc.

  4. #4
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut
    Generer un rapport c'est a dire ?
    Le pb est le poids de l'HTML genere (2Mo).

    Peut on faire un buffer/flush pour que les lignes s'affiches au fur et a mesure ?

  5. #5
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Par défaut
    Bonjour,

    J'ai dernièrement rencontré ce genre de problématique. Déjà as-tu testé ta page sur différents navigateurs ? Quel(s) est(sont) le(s) navigateur(s) cible(s) ?

    Que contient ta page ? du javascript ? ... ?

    Pour ma part, la dernière fois que j'ai eu ça, en désactivant tout le javascript, la page se chargeait quasi instantanément en affichant environ 300 lignes sur une dizaine de colonne.

    Sinon comme il a été dit, que l'utilisateur puisse choisir un pagesize parmi une liste parmi laquelle les valeurs ont un compris acceptable réactivité/taille, c'est plutôt bien. Il faut juste prévenir l'utilisateur qu'avoir plus de lignes affichées sera plus long que moins.

  6. #6
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Par défaut
    Sinon pour réduire le poids de la page, il y a une bidouille qui consiste à réduire au maximum le HTML généré selon la pratique suivante (tu l'as peut-être déjà fait).

    Prenons un exemple grossier, pour chaque cellule tu as défini un style dont le nom de la classe est "styleCellule", donc 12 caractères soit 12 octets. Tu as 100 lignes et 10 colonnes donc 1000 cellules donc dans le HTML généré tu auras 1000 fois "styleCellule" donc 12000 octets. Si tu renommes ton style en "c1" tu gagnes 10 octets à chaque fois donc tu as au final 2000 octets.

    Bon c'est un exemple à la c**, mais j'ai eu le cas de développeur utilisant des noms à rallonge pour les styles, les noms d'images, ... qui une fois répétés X fois dans le html donnaient une page de taille importante.

  7. #7
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Je suis du même avis : il y a des choses qui ne sont pas à faire.

    La GridView ASP.NET n'est pas prévue pour afficher des milliers d'éléments sur une page Web. En règle générale, une page Web avec un tableau de 1000 lignes est une mauvaise page => très mauvaise ergonomie, faible lisibilité, performances pauvres, etc...

    Il faut soit imposer aux utilisateurs, du fait des contraintes techniques, une limite acceptable (200, 500, 1000 ?), selon les colonnes à afficher, le poids de la page, etc.
    Soit trouver un autre système qu'une GridView. PitMaverick78 parle d'un report, on peut aussi penser à une extraction Excel. On peut aussi mettre en place du Scrolling Ajax vertical sur la GridView (tu n'a plus à utiliser de pages, mais ne peut visualiser toutes les lignes en même temps).

    Bref, pas de solution miracle à ce problème (qui n'en est pas un en fait).

    Faut pas se laisser faire par le Business, l'expert informatique c'est toi, pas les utilisateurs. Tu argumentes et explique le pourquoi on ne peut faire ça, tu proposes une solution de contournement, mais tu n'acceptes pas des demandes farfelues

  8. #8
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Citation Envoyé par Nicolas Esprit Voir le message
    Je suis du même avis : il y a des choses qui ne sont pas à faire.

    La GridView ASP.NET n'est pas prévue pour afficher des milliers d'éléments sur une page Web. En règle générale, une page Web avec un tableau de 1000 lignes est une mauvaise page => très mauvaise ergonomie, faible lisibilité, performances pauvres, etc...
    Je plussoie entièrement!

    Citation Envoyé par Nicolas Esprit Voir le message
    Il faut soit imposer aux utilisateurs, du fait des contraintes techniques, une limite acceptable (200, 500, 1000 ?), selon les colonnes à afficher, le poids de la page, etc.
    Soit trouver un autre système qu'une GridView. PitMaverick78 parle d'un report, on peut aussi penser à une extraction Excel. On peut aussi mettre en place du Scrolling Ajax vertical sur la GridView (tu n'a plus à utiliser de pages, mais ne peut visualiser toutes les lignes en même temps).
    J'ai exactement le même problème sur l'appli que je développe actuellement: On affiche que le mois courant. "Oui, mais vous comprenez, des fois, on a besoin d'avoir un historique sur an, toussa toussa".
    La réponse qu'on a donné: à besoin spécifique, réponse spécifique. Vous demandez a votre hiérarchie qui dispose de rapports xls, complets, générés par nos serveurs et vous utilisez ca dans votre Excel.

    En plus, en général, passer par une demande comme ca, ca freine les ardeurs de ceux qui veulent des stats en long et en large et ils ne demandent que quand ils en ont besoin.

    Citation Envoyé par Nicolas Esprit Voir le message
    Bref, pas de solution miracle à ce problème (qui n'en est pas un en fait).

    Faut pas se laisser faire par le Business, l'expert informatique c'est toi, pas les utilisateurs. Tu argumentes et explique le pourquoi on ne peut faire ça, tu proposes une solution de contournement, mais tu n'acceptes pas des demandes farfelues
    Pfiou, si seulement c'était si simple
    Généralement, la technique efficace est de demander quel est la réelle utilité fonctionelle de ce besoin. Bien généralement, le client aura du mal à justifier ou dira qu'il a une utilisation non conforme de l'appli, auquel cas tu peux le remballer!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [LG]Lenteur de parcours de fichier
    Par YéTeeh dans le forum Langage
    Réponses: 9
    Dernier message: 26/11/2003, 22h57
  2. [Débutant] Lenteur avec TComPort
    Par PhDt76 dans le forum C++Builder
    Réponses: 22
    Dernier message: 27/09/2003, 21h43
  3. lenteur d'affichage de requete dans un DBGrid
    Par nico27 dans le forum InterBase
    Réponses: 9
    Dernier message: 23/06/2003, 13h54
  4. [Sybase]probleme de lenteur
    Par MASSAKA dans le forum Sybase
    Réponses: 3
    Dernier message: 19/03/2003, 22h58
  5. Lenteur d'execution de Jbuilder 6
    Par Tsimplice dans le forum JBuilder
    Réponses: 6
    Dernier message: 18/12/2002, 14h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo