Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flex
Flex Forum d'entraide sur la programmation Adobe Flex : applications Internet riches (RIA)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/11/2010, 11h43   #1
Membre à l'essai
 
Inscription : février 2008
Messages : 90
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 90
Points : 24
Points : 24
Par défaut Problème de performance

Bonjour tout le monde,

Je suis sur un projet en Flex 4 et au début tout allait bien. Un jour le client est venu avec des change request et voulait non pas 100 composants, mais plus de 3000. On les as repartit en plusieurs tabulations mais le client en veut le moins possible.

Sachant que le plus gros tab représente 3000 contrôle différents (textInput,radiobutton,form item, etc etc) sur une profondeur de 3 (Panel,Panel,Vgroup) et bien on arrive a des gros problèmes de performances. Creer les composants, ça va vite, mais les afficher....

J'ai fais un petit PoC représentant plus ou moins la situation actuelle:

Code :
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
35
36
37
38
39
40
41
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
 
    <fx:Script>
        <![CDATA[
            import mx.controls.TextInput;
 
            public function init():void{
 
                //create lot of components
                var MAX:int = 10000;
                for(var i:int=0;i<MAX;i++){
 
                    //create new textInput
                    var textInput:TextInput = new TextInput();
                    panel2.addElement(textInput);
 
 
                }
 
 
            }
 
        ]]>
    </fx:Script>
 
    <s:Panel id="panel">
        <s:Panel id="panel2">
            <s:layout>
                <s:VerticalLayout/>
            </s:layout>
        </s:Panel>
    </s:Panel>
    <s:Button id="button" label="Create component" click="init()"/>
 
</s:Application>
Quand j’exécute ce code, ça prend environ 40sec (ce qui est pas loin de la réalité pour un des tab). Comment puis-je faire descendre ce temps de chargement à moins de 10sec?
Jexou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2010, 14h30   #2
Rédactrice/Modératrice
 
Ellène
Inscription : mai 2006
Messages : 898
Détails du profil
Informations personnelles :
Nom : Ellène
Localisation : France

Informations forums :
Inscription : mai 2006
Messages : 898
Points : 1 592
Points : 1 592
Bonjour,

Pourquoi n'essaierais tu pas les itemRenderer et les composants associés tels que DataGroup par exemple. Je pense qu'ils sont bien plus optimisés que ta méthode.
Voici quelques liens d'exemples pour Flex 4 :
http://coenraets.org/blog/2010/02/mo...derer-samples/
http://help.adobe.com/en_US/flex/usi...a597-8000.html
http://coenraets.org/blog/2010/01/co...asy-in-flex-4/

++

Ellène
__________________
Nous mettons en place une FAQ Flex, vous pouvez contribuer ici ! Aidez nous !

JDuchess France le groupe féminin Java en France : Rejoignez nous !
JDuchess France blogue !
ellene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2010, 15h44   #3
Membre à l'essai
 
Inscription : février 2008
Messages : 90
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 90
Points : 24
Points : 24
Citation:
Envoyé par ellene Voir le message
Bonjour,

Pourquoi n'essaierais tu pas les itemRenderer et les composants associés tels que DataGroup par exemple. Je pense qu'ils sont bien plus optimisés que ta méthode.
Voici quelques liens d'exemples pour Flex 4 :
http://coenraets.org/blog/2010/02/mo...derer-samples/
http://help.adobe.com/en_US/flex/usi...a597-8000.html
http://coenraets.org/blog/2010/01/co...asy-in-flex-4/

++

Ellène
Yep ! C'est la solution que j'ai trouvé en fouillant un peu sur le net, ça a l'air de marcher, mais ça complique un peu d'autres choses de l'application.
Jexou est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h17.


 
 
 
 
Partenaires

Hébergement Web