Heim > Web-Frontend > js-Tutorial > Hauptteil

Einführung in Anwendungsszenarien der Drosselung und des Anti-Shake von Javascript-Funktionen

不言
Freigeben: 2018-10-19 15:06:33
nach vorne
2644 Leute haben es durchsucht

Dieser Artikel bietet Ihnen eine Einführung in die Verwendung des PHP-Variablenbereichs (Code). Freunde in Not können darauf zurückgreifen.

throttle Throttle

Wird nur einmal ausgeführt, nachdem das Ereignis ausgelöst wurde.

Anwendungsszenario

Wenn das Mousemove-Ereignis ausgelöst wird, z. B. eine Mausbewegung.

Situationen, die das Keyup-Ereignis auslösen, z. B. eine Suche.

Wenn das Scroll-Ereignis beispielsweise ausgelöst wird, wird das Laden von Daten ausgelöst, wenn die Maus aufhört, nach unten zu scrollen.

Codierung

Methode 1 Anti-Shake

// function resizehandler(fn, delay){
//   clearTimeout(fn.timer);
//   fn.timer = setTimeout(() => {
//      fn();
//   }, delay);
// }
// window.onresize = () => resizehandler(fn, 1000);
Nach dem Login kopieren

Methode 2 Schließung Anti-shake

function resizehandler(fn, delay){
    let timer = null;
    return function() {
      const context = this;
      const args=arguments;
      clearTimeout(timer);
      timer = setTimeout(() => {
         fn.apply(context,args);
      }, delay);
    }
 }
 window.onresize = resizehandler(fn, 1000);
Nach dem Login kopieren

Entprellung Anti-Shake Schütteln

Einmal innerhalb eines bestimmten Ereignisses ausführen, nachdem das Ereignis ausgelöst wurde.

Anwendungsszenario

Das durch Fensterwechsel ausgelöste Größenänderungsereignis wird nur einmal ausgeführt.

Um die eingegebene Telefonnummer zu überprüfen, hören Sie einfach einmal mit der Eingabe auf.

Codierung

function resizehandler(fn, delay, duration) {
        let timer = null;
        let beginTime = +new Date();
        return function() {
          const context = this;
          const args = arguments;
          const currentTime = +new Date();
          timer && clearTimeout(timer);
          if ((currentTime - beginTime) >= duration) {
            fn.call(context, args);
            beginTime = currentTime;
           } else {
             timer = setTimeout(() => {
               fn.call(context, args)
             }, delay);
           }
        }
      }

        window.onresize = resizehandler(fn, 1000, 1000);
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonEinführung in Anwendungsszenarien der Drosselung und des Anti-Shake von Javascript-Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage