Limitation simple en JavaScript avec implémentation personnalisée
Lorsque vous travaillez avec JavaScript, le contrôle des taux d'exécution des fonctions peut être crucial. Les fonctions de limitation limitent la fréquence des invocations de fonctions, évitant ainsi un traitement excessif ou des actions utilisateur répétitives.
Dans cet article, nous présentons une simple fonction de limitation personnalisée pour y parvenir sans recourir à des bibliothèques externes telles que Lodash ou Underscore.
La fonction d'accélérateur fournie, bien que fonctionnelle, présente un comportement indésirable : elle déclenche à nouveau la fonction après le temps d'accélération. Cela peut conduire à des appels de fonction involontaires, en particulier dans des scénarios tels que des événements de pression de touche.
Pour résoudre ce problème, nous vous recommandons d'implémenter des fonctions de limitation basées sur du code bien testé provenant de bibliothèques établies telles que Underscore.js ou Lodash. Voici une version légèrement modifiée du code d'accélérateur Underscore pour votre référence :
function throttle(func, wait, options) { // ... }
Cependant, si vous préférez une approche plus personnalisée et plus légère, envisagez la fonction d'accélérateur simplifiée suivante :
function throttle (callback, limit) { // ... }
Cette fonction de base fournit un moyen simple de limiter les exécutions de fonctions, sans options de configuration supplémentaires.
N'oubliez pas qu'en proposant à la fois des options personnalisées et open source, nous nous efforçons de répondre à divers types de codage. préférences et exigences du projet.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3