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 :

HTTPservice - comportement étrange.


Sujet :

Flex

  1. #1
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut HTTPservice - comportement étrange.
    Bonjour,

    Mon application (de type creationComplete) est initialisée par une première requête, pour affichage des données.


    //Requete de base 1
    <mx:HTTPService id="newRequest" url="...
    Bref, trés bien.

    Pour supprimer une donnée, j'utilise une autre requête.

    //Requete 2 ( Suppression_Id )
    <mx:HTTPService id="supListRequest" url="...
    Par conséquent et dans ma fonction, j'utilise la méthode suivante :

    private function Suppression_Id():void {

    //....boîte d'alerte
    //...etc

    private function listconfirmHandler(event:CloseEvent):void {
    if (event.detail == Alert.YES) {

    supListRequest.send(); // suppression de l'id de référence

    newRequest.send(); // Réinitialisation des données

    }
    Ce qui me semble dans l'ordre des choses.
    Et pourtant, 1 fois sur 3, la donnée supprimée reste affichée alors qu'elle a bien été supprimée de la DB.(Vérifié)
    Et si je relance l'application, elle a bien sûr disparue.

    Pourrait-on en déduire que :
    supListRequest.send(); // suppression de l'id de référence

    newRequest.send(); // Réinitialisation des données
    s'éxécutent de façon aléatoire, c'est à dire de manière non ordonnée ?

    Merci à vous pour vos remarques.
    Cdt
    Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
    C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.

  2. #2
    Membre éclairé
    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
    Points : 894
    Points
    894
    Par défaut
    Les requêtes sont bien envoyées dans l'ordre. Par contre rien ne permet de s'assurer que la seconde ne sera pas exécutée avant la première sur le serveur.
    Les requêtes SQL de mise à jour étant souvent plus lente que les requêtes de lecture il n'est pas surprenant que celle-ci soit exécutée alors même que la requête de suppression n'est pas terminée.
    Pour se synchroniser il faut donc intervenir soit du côté serveur, soit du côté client.
    Côté serveur il faudrait que la requête suplistRequest renvoie le résultat du select après la suppression, ou bien créer une troisième requête supListSelectRequest qui enchaîne les deux opérations.
    Côté client il faudrait n'exécuter le selectRequest qu'au moment de la réception de la réponse de la requête supListRequest.
    jyl@xx
    "Simplicity does not precede complexity, but follows it." Alan Perlis

  3. #3
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Citation Envoyé par jylaxx Voir le message
    ....Par contre rien ne permet de s'assurer que la seconde ne sera pas exécutée avant la première sur le serveur....
    Les requêtes SQL de mise à jour étant souvent plus lente que les requêtes de lecture il n'est pas surprenant que celle-ci soit exécutée alors même que la
    requête de suppression n'est pas terminée......

    Effectivement et bien vu, c'est ce que je pressentais, tout du moins un problème du genre.

    Pour tester, j'ai forcé le processus de remise à jour en le relancant plusieurs fois, par exemple :

    supListRequest.send(); // suppression de l'id de référence

    newRequest.send(); // Réinitialisation des données
    newRequest.send(); //...
    newRequest.send(); //...
    newRequest.send(); //...
    Celà fonctionne, ce n'est pas plus lent à l'oeil, mais pas trés rationnel à mon goût.

    J'avais lu un article se rapprochant dans un certain sens, de ces états de fait.
    Le cas de figure est différent mais pourtant interressant

    Je vais par conséquent m'orienter vers ta dernière suggestion qui me semble plus approprièe.
    Je donnerai suite avant de clouter le thread.



    Merci jylaxx pour cette intervention.
    Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
    C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.

  4. #4
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Citation Envoyé par jylaxx Voir le message
    ...Côté client il faudrait n'exécuter le selectRequest qu'au moment de la réception de la réponse de la requête supListRequest....
    Ok, corrigé.

    J'aurais pu y penser plus tôt mais Flex...je découvre petit à petit.
    <mx:HTTPService id="supListRequest" ............. result="resultSuppression(event)">

    private function resultSuppression(event:Event):void{
    newRequest.send();
    }
    Merci jylaxx
    Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
    C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.

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

Discussions similaires

  1. [Flex3] HTTPService Events - Comportement étrange
    Par alain31tl dans le forum Flex
    Réponses: 4
    Dernier message: 05/11/2010, 13h00
  2. Comportement étrange apres une désinstallation
    Par Sunchaser dans le forum Excel
    Réponses: 4
    Dernier message: 06/08/2005, 19h44
  3. comportement étrange d'une jointure ...
    Par amenis dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 10/02/2005, 21h27
  4. [Système][Runtime][Exec] Comportement étrange au lancement de BeSweet
    Par divxdede dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 06/06/2004, 09h54
  5. Réponses: 2
    Dernier message: 22/09/2003, 11h23

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