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:
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?
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
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>
Partager