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 :

Rapidité d'affichage laissant à désirer


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2003
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 25
    Par défaut Rapidité d'affichage laissant à désirer
    En gros, voilà le code que j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
            Imports Microsoft.VisualBasic
            Imports System.Data.SqlClient
     
            Dim i As Integer = 0
     
            Dim oConnection As New SqlConnection("Paramètres de connexion")
            Dim oCommand As New SqlCommand
     
            Dim oReader As SqlDataReader
     
            oConnection.Open()
     
            With oCommand
                .Connection = oConnection
                .CommandType = Data.CommandType.StoredProcedure
                .CommandText = "Nom d'une procédure stockée"
                oReader = .ExecuteReader
            End With
     
            Response.Write("<table>")       
     
            While oReader.Read()
                Response.Write("<tr>")  
                For i = 0 To (oReader.FieldCount - 1)
                     Response.Write("<td>") 
                     Response.Write(oReader(i))
                     Response.Write("</td>") 
                Next
                Response.Write("</tr>") 
            End While
     
            Response.Write("</table>")
    La procédure stockée est hyper simple (style : select * from tablenom) et j'ai testé sa rapidité dans SQL server 2005... Elle ne pose aucun problème. Le serveur est un bon lui aussi (pas de prob CPU ni ram ou autre) tout comme ma machine local. Il s'agit vraiment de ma façon de traiter l'affichage. J'ai l'intuition que c'est au niveau des boucles (2 boucles imbriquées -> pas bien ?).

    En tout cas, ça a pour conséquence que pour moins de 7000 enregistrements ma page met plus de 1 minute à s'afficher !!!

    Il doit certainement exister une façon plus rapide de traiter cela... Mais pour l'instant je ne la connais pas...

    Si vous pouviez m'aider. Je vous en serais reconnaissant.

    Merci d'avance.

    Voilà

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 312
    Par défaut
    Déja les response.write c'est plutot obsolete en aspnet, mais bon...

    Passe par un stringbuilder pour concatener tout ton string, et fais ton response.write une seule fois a la fin, ca devrait deja aller mieux

  3. #3
    Membre averti
    Inscrit en
    Mars 2003
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 25
    Par défaut
    En fait, c'est déjà ce que je fait mais pour la clarté de l'exemple j'ai écrit ça avec des response.write...

    A la base, j'ai une seule variable String que je concatène et affiche tout à la fin.

    Voilà

  4. #4
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    une seule variable String que je concatène

    Pour repreciser, une seule variable, ou un stringBuilder sur lequel tu fais Append ?


    Si c'est une seule variable, et 7000 *3 = 21000 concatenations, c'est mal

    Essaye comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    dim stb as new StringBuilder("<table>")       
     
            While oReader.Read()
                stb.Append("<tr>")  
                For i = 0 To (oReader.FieldCount - 1)
                  stb.Append("<td>").Append(oReader(i)).Append("</td>") 
                Next
                stb.Append("</tr>")  
            End While
     
            stb.Append("</table>")
            Response.Write(stb.ToString())
    Si tu utilise deja un stringbuilder...hmmmm...je vois pas, passe un coup de profileur

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  5. #5
    Membre averti
    Inscrit en
    Mars 2003
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 25
    Par défaut
    Merci de votre astuce StringBuilder à tout les deux...

    J'ai testé ça et c'est moins lent... Moins seulement... Il doit y avoir encore qqch.

    Voilà

  6. #6
    Membre averti
    Inscrit en
    Mars 2003
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 25
    Par défaut
    Je me demande si mon problème ne pourrait pas se résoudre si j'affectais mon reader à un contrôle de type DataGrid par exemple, ou autre...

    J'aime pas trop utiliser (sans raison et j'assume ) les contrôles et champs gérer par ASP... Donc je suis pas trop familier avec ce genre de pratique... Je vais un peu chercher sur le web, je trouverai bien qqch.

    Mais dites moi si vous me conseillez un contrôle plus qu'un autre.

    Merchi.

    Voilà

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

Discussions similaires

  1. Rapidité d'affichage à la premiere connexion.
    Par snopims dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 25/08/2009, 16h45
  2. Pour Google, la rapidité d'affichage passe avant la sécurité
    Par Emmanuel Chambon dans le forum Actualités
    Réponses: 6
    Dernier message: 19/06/2009, 16h15
  3. rapidité d'affichage du rendu
    Par cedric.c dans le forum Flex
    Réponses: 2
    Dernier message: 20/06/2008, 16h38
  4. Différence rapidité d'affichage ou pas ?
    Par Valter dans le forum Requêtes
    Réponses: 1
    Dernier message: 28/04/2008, 20h35
  5. Rapidité d'affichage d'une table dans un datagridview
    Par will2taz dans le forum VB.NET
    Réponses: 9
    Dernier message: 13/11/2007, 18h22

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