J'ai un tableau de cases à cocher dans un formulaire dynamique-html complexe. Chaque fois qu'un utilisateur clique sur une case, une requête assez coûteuse est générée et soumise à un serveur distant. Je souhaite différer cette action de soumission en fonction de l'action suivante de l'utilisateur. Si l'utilisateur clique plusieurs cases à cocher rapidement, tous les premiers clics doivent être supprimés, seul le dernier est traité et éventuellement envoyé après 1 seconde environ. peut-être que c'est un problème commun, mais je n'ai jamais travaillé avec des délais d'attente avant.javascript: comment retarder l'envoi de données lorsque plusieurs cases à cocher sont cliquées dans un court intervalle de temps?
2
A
Répondre
0
La méthode que vous essayez d'employer s'appelle le débrayage.
J'ai souvent une fonction anti-rebond générique dans mon javascript:
var debounce=function(func, threshold, execAsap) {
var timeout;
return function debounced() {
var obj = this, args = arguments;
function delayed() {
if (!execAsap)
func.apply(obj, args);
timeout = null;
};
if (timeout)
clearTimeout(timeout);
else if (execAsap)
func.apply(obj, args);
timeout = setTimeout(delayed, threshold || 100);
};
};
Et puis quand quelque chose a besoin debouncing, je DEBOUNCE habituellement la fonction,
Dans votre cas, il est peut-être quelque chose comme:
$("checkbox").click(debounce(callBackFunction,1000));
où callbackFunction
est la fonction qui fait votre "jquery cher" et 1000
est le délai d'expiration. L'application de ce qui précède signifie que callbackFunction est appelée à 1 seconde de temporisation, si elle est appelée à des intervalles plus courts, l'appel est ignoré.
Questions connexes
- 1. Cocher les cases à cocher en utilisant javascript lorsque les identifiants ont un certain caractère dans
- 2. plusieurs cases à cocher listview dans CompactFramework
- 3. Jquery sélectionner plusieurs cases à cocher
- 4. Insérer plusieurs cases à cocher dans un champ de base de données
- 5. Rails Plusieurs cases à cocher avec Javascript Sélection dynamique
- 6. Javascript - Grille de cases à cocher?
- 7. Gestion des cases à cocher de plusieurs pages
- 8. Temps dans un intervalle de temps particulier
- 9. ajax et plusieurs cases à cocher
- 10. Comment obtenir un tableau de cases à cocher dans haml?
- 11. Java - cases à cocher dans un JComboBox
- 12. Pylônes/Formencode avec plusieurs cases à cocher
- 13. mettre du texte dans une zone de texte lorsque 2 cases à cocher sont cochées
- 14. l'insertion d'enregistrements à la base de données à partir de plusieurs cases à cocher vb.net
- 15. Comment désactiver le retour arrière lorsque les cases à cocher sont activées dans jQuery?
- 16. Comment appeler la fonction Javascript lorsque les colonnes de la case à cocher sont cochées
- 17. Plug-in de validation jQuery Plusieurs cases à cocher
- 18. Comment obtenir des données de plusieurs tables appartenant à des champs contenant des cases à cocher?
- 19. case à cocher unique met à jour l'état de plusieurs cases à cocher
- 20. CakePHP FormHelper - Impossible de désactiver plusieurs cases à cocher
- 21. Liste de cases à cocher dans JDialog
- 22. Obtenir plusieurs cases à cocher de l'élément FormCollection
- 23. Formulaire javascript simple réinitialisé lorsque certaines zones de texte sont cliquées
- 24. Plusieurs cases à cocher avec le même nom dans CakePHP
- 25. cases à cocher code
- 26. valeurs Pass de cases à cocher en utilisant Javascript
- 27. type de données pour les cases à cocher dans php
- 28. javascript pour deux cases à cocher dans aspx
- 29. Vérifiez si les cases à cocher sont cochées dans jQuery?
- 30. jQuery Cases à cocher
c'était rapide, merci! a déjà été répondu ici sur stackoverflow.com. voir ici pour une version commentée du code khaleds, et plus: http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/ – knb