La stabilisation et la limitation des fonctions JavaScript

Source : Internet
Auteur : utilisateur

Tags : navigateur d’autre en savoir plus sur l’ONS publiques numéro vitesse public clic de souris

Stabilisation

Anti-tremblement et stabilisateur pour empêcher les tremblements de la main

Est de déclencher plusieurs événements au sein d’une certaine période de temps et d’exécuter uniquement la dernière fois.

Par exemple, Association de recherche de Baidu, associera seulement les derniers caractères d’entrée

ResizeEvent (contenu) de la fonction {console.log ("fenêtre" + contenu)} laisser événement = debounce (resizeEvent) fonction debounce ( FUNC, retard) {s timeOut = null return (args) = > {si (timeOut ! == null) {//Clear dernier timer, reminutage clearTimeo UT (timeOut)} timeOut = setTimeout (() = > {func (args)}, retard)}} //when redimensionnement de la fenêtre du navigateur, déclenche un événement addEventListener (' re Taille ', () = > {événement (1)})

Application :

1.recherche de Lenovo, enregistrer les demandes de ressources tandis que les utilisateurs entrent constamment des valeurs, ce qui garantit que Lenovo est correcte

2. événement de redimensionnement de la fenêtre, stabilisateur permet il déclencher une seule fois

Limitation de la

Déclenche plusieurs événements sur une période de temps et la fonction exécute une seule fois après chaque intervalle.

Par exemple, des jeux FPS ont été enfoncées les souris, balles de mitraillette à une certaine vitesse de continu

ResizeEvent (contenu) de la fonction {console.log ("fenêtre" + contenu)} laisser événement = papillon (resizeEvent) fonction throttle ( FUNC, retard) {s dernière = null let deferTimer = retour null (args) = > {laisser maintenant = new Date (). getTime () si (las T. maintenant le dernier + delay) {//Before l’intervalle, claire minuterie clearTimeout ne (deferTimer) deferTimer = setTimeout (() = & G T {//Re-new minuterie, attendez que l’intervalle être placées en dernier, exécuter la fonction last = func maintenant (args)}, retard)} else {//first temps ou a dépassé l’intervalle Dernière = maintenant func (args)}}} //when redimensionnement de la fenêtre du navigateur, déclenche un événement addEventListener (« Redimensionner », () = > {événement (1)})

Application :

1. clic constant pour déclencher une fonction, MouseDown (déclenché une seule fois par unité de temps)

2. la souris continue de se déplacer déclencher une fonction, MouseMove (déclenché une seule fois par unité de temps)

Résumer

Anti-tremblement et limitation

Les mêmes points sont conçus pour résoudre des problèmes de performances provoqués par un grand nombre de déclencheurs dans un court laps de temps.

Différents points sont basés sur les différents besoins, la mise en œuvre de principes différents.

Il y a des questions à discuter ensemble, bienvenue à prêter attention aux notes Qin numéros publics

La stabilisation et la limitation des fonctions JavaScript

Nous contacter

Le contenu de cette page provient d'Internet et ne reflète pas l'opinion d'Alibaba Cloud ; les produits et services mentionnés sur cette page n'ont aucune relation avec Alibaba Cloud. Si le contenu de la page vous semble problématique, veuillez nous écrire un courriel, nous traiterons le problème dans les 5 jours suivant la réception de votre message.

Si vous constatez des cas de plagiat de la part de la communauté, veuillez envoyer un courriel à : info-contact@alibabacloud.com et fournir des preuves pertinentes. Un membre de notre équipe vous contactera dans les 5 jours ouvrables.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.