Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Tester si le focus est sur un champ

4 réponses
Avatar
Yves On Line
Bonjour,
J'ai crée un petit moteur de recherche dynamique avec un xmlhttprequest. A
chaque frappe dans le champ de recherche la requête se lance et les
résultats s'affichent.
Le problème c'est que c'est hyper lent...trop de requêtes en quelques
secondes.
Je voudrais donc modifier le script pour ne lancer la requête que toutes les
3 secondes et si le curseur est dans le champ de recherche. (ce qui signifie
que l'utilisateur est en train de saisir dans ce champ)
D'où ma question : comment tester en permanence le fait que le curseur (et
non pas le focus)
soit sur mon champ de recherche ?
Yves

4 réponses

Avatar
Yves On Line
Question idiote pardon il suffit de tester les entrees et les sorties du
champ.
Bon we
Yves
Avatar
ASM
Bonjour,
J'ai crée un petit moteur de recherche dynamique avec un xmlhttprequest. A
chaque frappe dans le champ de recherche la requête se lance et les
résultats s'affichent.
Le problème c'est que c'est hyper lent...trop de requêtes en quelques
secondes.
Je voudrais donc modifier le script pour ne lancer la requête que toutes les
3 secondes et si le curseur est dans le champ de recherche. (ce qui signifie
que l'utilisateur est en train de saisir dans ce champ)
D'où ma question : comment tester en permanence le fait que le curseur (et
non pas le focus)
soit sur mon champ de recherche ?
Yves




? ?

<input onclick="k=0" onkeydown="k++"
onkeyup="if(k==3){recherche(this.value);k=0;}">

--
Stephane Moriaux et son [moins] vieux Mac

Avatar
Yves On Line



? ?

<input onclick="k=0" onkeydown="k++"
onkeyup="if(k==3){recherche(this.value);k=0;}">

--
Stephane Moriaux et son [moins] vieux Mac


Oui c'est bien ce que j'ai mis en place...sauf sur je teste sur 3 secondes
et non 3 clics, sinon la recherche ne se lance pas systématiquement lorsque
l'utilisateur a terminé sa saisie...
Yves


Avatar
ASM

<input onclick="k=0" onkeydown="k++"
onkeyup="if(k==3){recherche(this.value);k=0;}">


Oui c'est bien ce que j'ai mis en place...sauf sur je teste sur 3 secondes
et non 3 clics, sinon la recherche ne se lance pas systématiquement lorsque
l'utilisateur a terminé sa saisie...


j'a pas tout compris ...
il faut attendre 3 s avant de taper la lettre suivante ?

Sinon, en 3 secondes, même d'1 doigt, j'ai le temps d'en taper déjà un
paquet que j'ai depuis longtemps lancé la requête tout seul manuellement
après m'être énervé que ça ne bougeait pas
(en particulier si j'ai utilisé le copié-collé)

Si la recherche php est si longue et qu'on lui ajoute un délai
préliminaire de 3 secondes, ce n'est pas vraiment une aide à la frappe
autocomplétive.

Il me semblait qu'en envoyant sur 3 lettres supplémentaires ça réduisait
déjà le taf des requetes.
Si la base pouvait être elle-même organisée en tables de mots de 3 à 5
puis 6 à 8 lettres etc ... est-ce que ça ne raccourcirait pas les temps
de tri suffisamment?

--
Stephane Moriaux et son [moins] vieux Mac