Anti-rebond (debounce)
L'anti-rebond (debounce en anglais), dans le contexte de la programmation, signifie ignorer les opérations qui se produisent trop rapprochées pendant un intervalle spécifique, et les regrouper en une seule invocation.
L'anti-rebond est très similaire à l'étranglement (throttling). La différence clé est que l'étranglement impose des limites sur les opérations continues, tandis que l'anti-rebond attend que les invocations s'arrêtent pendant un certain temps pour regrouper de nombreuses invocations bruyantes en une seule invocation.
Un cas d'utilisation typique de l'anti-rebond est lors de la réponse à une saisie utilisateur. Lorsque l'utilisateur·ice saisit du texte, aucune autre action ne doit être effectuée pour éviter que l'interface ne devienne lente. Lorsque l'utilisateur·ice fait une pause dans la saisie, nous pouvons commencer à traiter l'entrée, comme filtrer les résultats, donner des suggestions, etc. Si la fonction search est soumise à un anti-rebond de 10 millisecondes, cela signifie :
- Le premier appel à
searchest appelé bord d'attaque. - Pour chaque appel suivant à
search, s'il a lieu dans les 10 millisecondes suivant l'appel précédent, il fait partie du même « lot » que l'appel précédent. - Après que 10 millisecondes se sont écoulées depuis le dernier appel à
search, si aucun autre appel n'a eu lieu, nous avons atteint le bord de fuite.
Habituellement, search est exécuté une fois uniquement sur le bord de fuite, bien qu'il puisse parfois être exécuté sur le bord d'attaque, ou même sur les deux, selon le cas d'utilisation spécifique. S'il est exécuté sur les deux, l'implémentation de l'anti-rebond s'assure généralement aussi que la prochaine invocation du bord d'attaque ne se déclenche pas au moins 10 millisecondes après le bord de fuite précédent.
Voir aussi
- Termes associés du glossaire :
- Debouncing and Throttling Explained Through Examples (angl.) sur CSS-Tricks (6 avril 2016)