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

Flex Discussion :

Chargement et Initialisation des données


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 90
    Par défaut Chargement et Initialisation des données
    Bonjour à tous,

    Je développe une application en Flex et je suis face à un problème récurrent. Au début de l'application, j'initialise un ModelLocator (un singleton) qui lui va s'occuper d'appeler différents remote object afin de charger différentes liste d'info dans mon application.

    Le problème c'est que lorsque mon application s'initialise, je travaille sur certaines liste qui ne sont pas forcement initialisée (vu les appels asynchrones des différents modelLocator).

    Y a t-il dans Flex un moyen de savoir si TOUT a été initialisé. Pour l'instant j'ai mis un timer mais évidemment cette solution est nulle...

    Toute piste est bonne a prendre


    Merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Par défaut
    Le code que tu exécutes dans ton timer tu l'exécutes dans les événements de réception des résultats. Dans ce cas le timer n'est plus utile.

    Mais au fond je trouve que la solution du timer n'est pas une si mauvaise solution.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 90
    Par défaut
    Elle n'est pas mauvaise dans l'aboslu, mais içi imaginons un timer de 4sec suffit. Si je met mon applic sur un autre server, relié à une DB un peu plus lente, les 4sec risquent de ne plus suffire. De plus on perd en performance puisqu'il y a un risque d'attendre trop longtemps

    Le code que tu exécutes dans ton timer tu l'exécutes dans les événements de réception des résultats. Dans ce cas le timer n'est plus utile.
    Le soucis c'est que le code que j'execute après mon timer à besoin que les informations soient chargées. Et je dois avoir une 10aine de handler qui réceptionnent des résultats et impossible de savoir lequel se finira en dernier.

    En conclusion je suis à la recherche d'un système permerttant d'affirmer qu'à un instant X tout est chargé.

  4. #4
    Membre expérimenté Avatar de samy2525
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 259
    Par défaut
    Bonjour, pourquoi tu envoie pas tes requête en séquentiel en gros, à la réception du premier ReultEvent tu lance le deuxième handler et ainsi de suite, comme ça tu sais que au dernier handler appelé tous est charger

    voila

    Bon courage

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 90
    Par défaut
    Pas con. Après je suis pas sur des performance de ce truc là. J'essayerai merci !

    Si y'a d'autres idées

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Par défaut
    pourquoi tu envoie pas tes requête en séquentiel en gros, à la réception du premier ReultEvent tu lance le deuxième handler et ainsi de suite, comme ça tu sais que au dernier handler appelé tous est charge
    Cette solution n'est pas fondamentalement différente mais est un peu plus compliqué car pour ajouter une requête il faut modifier le ResultEvent de la requête précédente. D'autre part on perd l'avantage multi-thread éventuel du serveur.
    Par contre si les traitements effectués dans certains ResultEvent dépendent de la disponibilité des résultats d'autres requêtes c'est la solution à privilégier.

    Elle n'est pas mauvaise dans l'aboslu, mais içi imaginons un timer de 4sec suffit. Si je met mon applic sur un autre server, relié à une DB un peu plus lente, les 4sec risquent de ne plus suffire. De plus on perd en performance puisqu'il y a un risque d'attendre trop longtemps
    Le soucis c'est que le code que j'execute après mon timer à besoin que les informations soient chargées. Et je dois avoir une 10aine de handler qui réceptionnent des résultats et impossible de savoir lequel se finira en dernier.
    En conclusion je suis à la recherche d'un système permerttant d'affirmer qu'à un instant X tout est chargé.
    Je croyais avoir donner la solution mais en fait je ne pensais pas que tu utilisais ton timer de cette manière... La méthode de synchronisation appelée dans le timer doit être capable de savoir si toutes les données sont chargées, soit en testant les variables collections qui contiennent ces données, soit en lisant un tableau de booléens positionnés dans les resultEvent. Si les données ne sont pas disponibles un nouveau test sera effectué lors du prochain eventTimer.
    Il ne s'agit pas d'avoir un timer one shot avec un délai suffisamment grand pour le temps d'attente minimum, ce qui aurai peu d'intérêt. Il s'agit d'avoir un timer multi shots avec un délai de déclenchement faible (100 ou 200 ms par exemple) et une procédure de test de la disponibilité des données rapide.
    Lorsque toutes les données sont disponibles tu arrêtes ton timer.

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

Discussions similaires

  1. Stratégie initialisation des données utilisateur
    Par fja34 dans le forum Hibernate
    Réponses: 2
    Dernier message: 07/07/2015, 09h40
  2. Initialiser des données d'une structure sur une form
    Par soso78 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 24/12/2007, 15h41
  3. Réponses: 13
    Dernier message: 05/11/2006, 22h53
  4. Réponses: 6
    Dernier message: 22/09/2006, 13h31
  5. [D2006][FireBird] initialisation des données
    Par eponette dans le forum Bases de données
    Réponses: 1
    Dernier message: 30/08/2006, 15h51

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