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

Silverlight Discussion :

Lenteur avec un Web service et des pie charts


Sujet :

Silverlight

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 111
    Points : 50
    Points
    50
    Par défaut Lenteur avec un Web service et des pie charts
    Bonjour à tous,

    J'ai une page Silverlight avec 3 pie charts (camemberts).

    Quand j'en avais que 2 : ils s'affichaient quasi instantanément.

    Mais maintenant, les 2 premiers s'affichent tout de suite mais le troisième (même quand j'inverse l'ordre) s'affiche au bout de 30 secondes.

    J'ai créé 3 méthodes dans le Web service : 1 pour chaque pie chart.

    Y a t'il une limite pour un Web service ? Dois-je dispatcher les méthodes dans 2 Web services ?

    Merci pour vos réponses.

    Laurent.

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    C'est pas simplement l'appel à ton service qui prend du temps ? La récupération des données ? Montre nous ton code pour qu'on essaye d'en savoir un peu plus...

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 111
    Points : 50
    Points
    50
    Par défaut
    Voici le code du fichier Page.xaml.cs, method "Page()" :

    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
     
    public Page()
            {
                InitializeComponent();
     
                // using ASMX Web Service
     
                WebServiceForCharts35.EnabledWCF_IIS.EnabledWCFClient proxy = new WebServiceForCharts35.EnabledWCF_IIS.EnabledWCFClient();
     
                //Manage the status data from BDD2 Element database
                proxy.GetBDD2_ElementByStatusCompleted += new EventHandler<WebServiceForCharts35.EnabledWCF_IIS.GetBDD2_ElementByStatusCompletedEventArgs>(proxy_GetBDD2_ElementByStatusCompleted);
                proxy.GetBDD2_ElementByStatusAsync();                                                                                                    
     
                //Manage the status data from BDD1 Element database
                proxy.GetBDD1_ElementByStatusCompleted += new EventHandler<WebServiceForCharts35.EnabledWCF_IIS.GetBDD1_ElementByStatusCompletedEventArgs>(proxy_GetBDD1_ElementByStatusCompleted);
                proxy.GetBDD1_ElementByStatusAsync();
     
                //Manage the family data from TAR Target database
                proxy.GetBDD1_ElementByFamilyCompleted += new EventHandler<WebServiceForCharts35.EnabledWCF_IIS.GetBDD1_ElementByFamilyCompletedEventArgs>(proxy_GetBDD1_ElementByFamilyCompleted);
                proxy.GetBDD1_ElementByFamilyAsync();
     
            }
    Voici les gestionnaires d'évènements :

    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
    34
     
     
            void proxy_GetBDD1_ElementByStatusCompleted(object sender, WebServiceForCharts35.EnabledWCF_IIS.GetBDD1_ElementByStatusCompletedEventArgs e)
            {
     
                // result is pieChartData
                ObservableCollection<WebServiceForCharts35.EnabledWCF_IIS.DataForPie> pieChartData = e.Result;
     
                PieSeries ps = BDD1_StatusPie.Series[0] as PieSeries;
                ps.ItemsSource = pieChartData;
     
            }
     
            void proxy_GetBDD1_ElementByFamilyCompleted(object sender, WebServiceForCharts35.EnabledWCF_IIS.GetBDD1_ElementByFamilyCompletedEventArgs e)
            {
     
                // result is pieChartData
                ObservableCollection<WebServiceForCharts35.EnabledWCF_IIS.DataForPie> pieChartData = e.Result;
     
                PieSeries ps = BDD1_FamilyPie.Series[0] as PieSeries;
                ps.ItemsSource = pieChartData;
     
            }
     
            void proxy_GetBDD2_ElementByStatusCompleted(object sender, WebServiceForCharts35.EnabledWCF_IIS.GetBDD2_ElementByStatusCompletedEventArgs e)
            {
     
                // result is pieChartData
                ObservableCollection<WebServiceForCharts35.EnabledWCF_IIS.DataForPie> pieChartData = e.Result;
     
                PieSeries ps = BDD2_StatusPie.Series[0] as PieSeries;
                ps.ItemsSource = pieChartData;
     
            }

    Merci.

    Laurent.

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    A priori, je vois rien d'anormal...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 35
    Points : 39
    Points
    39
    Par défaut
    Utilises-tu une librairie particulière pour l'affichage des camemberts ?

    Peutêtre que le problème d'affichage proviendrait d'un paramètrage de cette librairie...

  6. #6
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Je suppose qu'il utilise le SL Control Toolkit

  7. #7
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 111
    Points : 50
    Points
    50
    Par défaut
    Désolé pour le retard,

    Oui en effet j'utilise le SL control toolkit...

    J'ai testé encore l'application et les lenteurs sont aléatoires, parfois même j'ai un message d'erreur au lieu de l'affichage d'un camembert.

    J'aimerais le déployer sur un serveur (avec le framework 3.5 dessus) pour voir si cela fonctionne mieux :

    Il faut que j'y déploie juste le service Web (à installer dans IIS), le fichier XAP et le fichier ASPX ?

    Merci.

    Laurent.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 35
    Points : 39
    Points
    39
    Par défaut
    Peut-être devrais-tu attendre que les données du WebService soient arrivées avant de loaded le contrôle affichant les Charts.

    Si jamais les données n'arrivent pas, comme ca tu n'as pas de contrôle vide ou en attente d'affichage.



    =============
    Blog : Silverlight News

  9. #9
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 111
    Points : 50
    Points
    50
    Par défaut
    tucod,

    En fait, ce n'est pas génant pour moi d'avoir des contrôles images vides en attendant qu'elles se remplissent.

    Et si un des camemberts ne s'affiche pas, pour moi c'est un bug et non un fonctionnement normal.

    Merci.

    Laurent.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 35
    Points : 39
    Points
    39
    Par défaut
    As-tu essayé de jouer avec le paramètre serveur ou client Keep-Alive ?




    ==============
    Blog : Silverlight News

  11. #11
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 111
    Points : 50
    Points
    50
    Par défaut
    tucod :

    Désolé pour le retard mais je ne reçois pas de notifications email quand il y a un nouveau commentaire.

    Non je ne connais pas les paramètres "serveur" et client Keep-Alive.

    Pourrais-tu m'en dire plus ?

    Merci.

    Laurent.

Discussions similaires

  1. Exposer des donnees simplement avec un Web Service
    Par florent_g dans le forum Accès aux données
    Réponses: 1
    Dernier message: 13/12/2010, 21h06
  2. Erreur de connexion oracle avec un web service
    Par fatenatwork dans le forum Services Web
    Réponses: 2
    Dernier message: 28/04/2008, 11h01
  3. Remplir un Gridview avec un web service
    Par Tamus dans le forum Services Web
    Réponses: 5
    Dernier message: 19/06/2007, 16h49
  4. Réponses: 1
    Dernier message: 26/02/2007, 09h44
  5. [vb.net]Gestion des exceptions avec les web services
    Par mvr dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/12/2005, 22h41

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