Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
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 19/05/2008, 11h16   #1
Membre Expert
 
Avatar de pmithrandir
 
Homme Pierre Bonneau
Développeur Web
Inscription : mai 2004
Messages : 873
Détails du profil
Informations personnelles :
Nom : Homme Pierre Bonneau
Âge : 28
Localisation : Roumanie

Informations professionnelles :
Activité : Développeur Web
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2004
Messages : 873
Points : 1 593
Points : 1 593
Envoyer un message via MSN à pmithrandir Envoyer un message via Skype™ à pmithrandir
Par défaut Auto completion temporisée

Bonjour

Je suis en train de mettre en place un système d'auto-completion sur les pages HTML de façon a ne pas afficher tout le temps tous les utilisateurs dans un champs select(on a un nouveau client qui avoisine les 25 000 salariés, ça le ferait pas...))

Pour l'instant, un système existe qui a changement envoie une requête au serveur pour afficher la lite réduite.

Le soucis, c'est que chaque fois que je touche à la cellule, j'envoie une requête, quand j'écris Dupont, j'envoie donc 6 requêtes.

L'idée serait que la personne qui écrirait "dup" d'un seul coup n'envoie une requête qu'après avoir arrêté de taper.

Ce que je pense qu'il faut mettre en place :
A chaque changements,
- on met dans une variable JS la date a partir de laquelle on doit envoyer la requête (date +1 sec par exemple) -> Ajout ou update de la valeur.
- Après 1 seconde(set time out) on vérifie si la date est bien passée(si aucune autre lettre n'a été tapée) et on lance la requête si tel est le cas.

Le problème, c'est que je ne vois pas trop par ou commencer, ni si c'est vraiment efficace. De plus, ca me parait bizarre que ce genre de système ne soit pas générique pour alléger les serveurs.

Quelqu'un pour me donner une piste ?

Pierre
pmithrandir est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2008, 12h49   #2
Membre confirmé
 
Avatar de baggie
 
Inscription : octobre 2007
Messages : 684
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2007
Messages : 684
Points : 226
Points : 226
Avec YUI (yahoo user interface), il y a une fonction définie :

yahooAutoComp.minQueryLength = 3;

Tant que l'utilisateur n'a pas tapé au moins 3 caractères, la requête ne se déclenche pas.

N'y-a-t-il pas un moyen de faire avec une variable $i et une incrémentation ?

M'enfin je dis ça je ne conseille pas forcément YUI x) ...
baggie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2008, 13h58   #3
Membre Expert
 
Avatar de pmithrandir
 
Homme Pierre Bonneau
Développeur Web
Inscription : mai 2004
Messages : 873
Détails du profil
Informations personnelles :
Nom : Homme Pierre Bonneau
Âge : 28
Localisation : Roumanie

Informations professionnelles :
Activité : Développeur Web
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2004
Messages : 873
Points : 1 593
Points : 1 593
Envoyer un message via MSN à pmithrandir Envoyer un message via Skype™ à pmithrandir
J'ai bien imaginé de mettre une limite de nombre de caractères.

Il ne me parais pas trop difficile de faire ca. le problème, c'est que je pense que la limite de temps serait plus intuitive pour l'utilisateur.

Il est malgré tout possible que j'utilise les deux idées à la fois.

Avoir au moins n caractères ET avoir arrêté d'écrire depuis m secondes.
pmithrandir est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2008, 14h27   #4
Responsable Modération
 
Homme
Inscription : janvier 2007
Messages : 9 316
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2007
Messages : 9 316
Points : 15 522
Points : 15 522
Citation:
Envoyé par pmithrandir Voir le message
Avoir au moins n caractères ET avoir arrêté d'écrire depuis m secondes.
Attention au N caractères : perso, j'ai été obligé de désactiver ce contrôle. On trouve relativement fréquemment des noms de 2 voire 1 (en Asie surtout) caractère ...

Un setInterval de 1 à 2 secondes poserait moins de problème ....

A+
E.Bzz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2008, 15h27   #5
Membre du Club
 
Inscription : mars 2007
Messages : 56
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : mars 2007
Messages : 56
Points : 55
Points : 55
Citation:
Envoyé par E.Bzz Voir le message
Attention au N caractères : perso, j'ai été obligé de désactiver ce contrôle. On trouve relativement fréquemment des noms de 2 voire 1 (en Asie surtout) caractère ...

Un setInterval de 1 à 2 secondes poserait moins de problème ....

A+
Bonjour,

L'idée du setInterval me parait très bonne. Je pense en l'occurrence à un setInterval qui lancerait une fonction de vérification du champs autocomplété. Si la valeur du champs est différente de la valeur reçu en paramètre alors elle ne fait rien sinon elle lance la requête Ajax.

Cela me semble facilement réalisable.
younid 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 01h37.


 
 
 
 
Partenaires

Hébergement Web