|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre Expert
![]() ![]() |
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 |
|
|
00
|
|
|
#2 |
|
Membre confirmé
![]() Inscription : octobre 2007 Messages : 684 ![]() |
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) ... |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() ![]() |
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. |
|
|
00
|
|
|
#4 | |
![]() ![]() Inscription : janvier 2007 Messages : 9 316 ![]() |
Citation:
Un setInterval de 1 à 2 secondes poserait moins de problème .... A+ |
|
|
|
00
|
|
|
#5 | |
|
Membre du Club
![]() Inscription : mars 2007 Messages : 56 ![]() |
Citation:
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. |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com