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

JavaScript Discussion :

[AJAX] declencher correctement ma demande


Sujet :

JavaScript

  1. #1
    Membre éclairé Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Points : 786
    Points
    786
    Par défaut [AJAX] declencher correctement ma demande
    Bonjour,

    Actuellement j'ai un formulaire où l'utilisateur saisie une info dans un champ type text et en fonction de ce qu'il met, ça me rempli une liste de selection en dessous.

    Je déclenche mon script grâce à un évènement onkeyup placé sur le input type text.

    Le problème est que si l'utilisateur saisie "ab" par exemple, ça va déclencher un traitement pour la valeur du champ input "a", et ensuite en même temps un second traitement pour la valeur "ab". Du coup, ça me retourne dans la liste de sélection les résultats des deux traitement alors que je ne voudrai que celui du dernier.

    Comment peut-on faire cela ?

    merci

  2. #2
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut
    Yop!

    La solution est peut-être de travailler de façon synchrone.
    Un ascenseur est une machine qui passe quand même la moitié de son temps à descendre.

  3. #3
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    je proposerai plutot que tu appelle ajax le champ de saisie perd le focus.

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Inhibe l'envoi si la valeur du champ est d'une longueur de 1.
    Sinon, utilises aussi un settimeout pour pouvoir empêcher l'envoi de la requête lors de la saisie des premiers caractères. En gros, tant que l'utilisateur utilises le clavier en continu, on ne fait rien, dès qu'il y a inactivité, on lance la requête.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre éclairé Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Points : 786
    Points
    786
    Par défaut
    Merci pour vos réponses.

    Pour l'instant, je me suis mis en mode synchrone mais va falloir que je regarde ta solution bovino.

    Mais je me demande ce qui se passera si je met un settimeout de 2s et que l'utilisateur attend 2.1s pour saisir a nouveau, est ce que le problème ne reste pas le même ?

    A voir les avantages et inconvénient de chaque méthode. N'étant pas trés doué en ajax, il va d'abord falloir que je regarde exactement ce que fait le mode synchrone pour comprendre les fonctionnements différents.

    encore merci

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Du coup, ça me retourne dans la liste de sélection les résultats des deux traitement alors que je ne voudrai que celui du dernier.
    Logiquement, tu devrais effacer le précédent résultat avant d'en afficher un autre...
    Sinon, oui il est sûr qu'il y aura toujours un moment de décalage... on ne peut pas y faire grand chose, c'est une des raisons pour lesquelles on met généralement un spinner pour indiquer que quelque chose se passe...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

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

Discussions similaires

  1. [AJAX] Demande de conseils en AJAX
    Par koolway dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 17/05/2006, 23h12
  2. Demande de corrections d'exercices Turbo Pascal
    Par Helpine dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 16/01/2005, 10h38

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