Supposons que j'attache un gestionnaire d'événements javascript "change" à un élément select, quelque chose qui envoie une requête ajax pour charger des éléments du serveur.comment gérer IE select onchange et les requêtes ajax
C'est très bien dans Firefox. Cependant, dans IE, l'événement change se déclenche à chaque fois que vous faites défiler rapidement les options de la liste déroulante à l'aide d'une molette de la souris. Ceci est gênant car il spams le serveur avec des demandes, et il n'y a aucune garantie que les demandes reviennent dans le bon ordre, par conséquent l'état côté client peut devenir incohérent. Maintenant, notre solution de contournement précédente était que nous introduirions un délai d'attente au gestionnaire de changement, de sorte qu'il attendrait une fraction de seconde avant d'envoyer réellement la demande. Si, dans ce court laps de temps, un autre événement de modification intervient, nous annulons le délai précédent et en démarrons un nouveau, empêchant ainsi le spam de plusieurs demandes.
Maintenant, même si cela semble fonctionner, c'est un peu hack et je me demande s'il y a une meilleure approche. Y a-t-il un événement différent auquel nous pouvons nous accrocher afin qu'il ne se déclenche pas à plusieurs reprises lors du défilement avec la souris? Ou devrions-nous simplement désactiver complètement la souris (onmousewheel = "return false;")? Firefox ne semble pas prendre en charge les boîtes combo de souris à roulettes, mais je ne suis pas sûr que la désactivation de la souris soit une utilisation sérieuse non-non ou quelque chose comme ça.
Quelqu'un peut-il recommander d'autres solutions?
bonne idée ... ne résout pas le problème du serveur spammé inutilement bien –