Vorwort1. Entprellen: Nach dem Auslösen eines Hochfrequenzereignisses wird die Funktion nur einmal innerhalb von n Sekunden ausgeführt. Wenn das Hochfrequenzereignis innerhalb von n Sekunden erneut ausgelöst wird, wird die Zeit neu berechnet. Beispiel: Genau wie bei der Suche auf Baidu werden nach jeder Eingabe verknüpfte Wörter angezeigt. Diese Methode zur Steuerung der verknüpften Wörter kann nicht ausgelöst werden, sobald sich der Inhalt des Eingabefelds ändert. Sie muss nach einer gewissen Zeit nach Abschluss der Eingabe ausgelöst werden. Drosselung: Hochfrequente Ereignisse werden ausgelöst, aber nur einmal innerhalb von n Sekunden ausgeführt, sodass die Drosselung die Ausführungsfrequenz der Funktion verringert. Beispiel: Die Ausführung einer Funktion ist nur dann geplant, wenn sie größer oder gleich dem Ausführungszyklus ist. Wenn sie während des Zyklus aufgerufen wird, wird sie nicht ausgeführt. Es ist, als ob Sie versuchen, einen Bestseller in limitierter Auflage auf Taobao zu kaufen. Sie klicken immer wieder auf die Schaltfläche „Aktualisieren“, um zu kaufen, aber irgendwann funktioniert es nicht mehr. Hier kommt die Drosselung ins Spiel, weil Sie befürchten, dass zu schnelles Klicken einen Fehler im System verursacht. 2. Unterschied: Anti-Shake besteht darin, mehrere Ausführungen in die letzte Ausführung umzuwandeln, und Throttling besteht darin, mehrere Ausführungen in Ausführungen in Intervallen umzuwandeln. Die Funktionen Anti-Shake und Throttling sind immer wieder Interviewthemen. Jeder ist möglicherweise mit dem Schreiben der Funktion „Anti-Shake“ und „Throttling“ vertraut, aber bei der Verwendung der Funktion „Anti-Shake“ oder „Throttling“ in Vue gibt es eine kleine Episode. Richtige Nutzungshaltung in Vue Warum? Dies hängt mit dem Ereignisbindungsprinzip von Vue zusammen, das hier nicht im Detail vorgestellt wird. Bei direkter Verwendung innerhalb des Funktionskörpers wird im Endergebnis eine anonyme, sofort ausgeführte Funktion ausgeführt, was falsch ist. Detaillierte Referenz PrinzipFunktion Entrütteln
Code schreiben Erste nicht sofortige Ausführung Exportfunktion Entprellung(f, t){ lass den Timer; return (...arg) => { Zeitüberschreitung löschen(Timer); Timer = setzeTimeout(() => { f( ...arg) }, T) } } Erste sofortige Ausführung
Exportfunktion debounceFirstExe(f, t){ lass Timer, Flag = true; return (...args) => { wenn (Flagge) { f(...args); Flagge = falsch; }anders { Zeitüberschreitung löschen(Timer); Timer = setzeTimeout(() => { f(...args); Flagge = wahr; }, T) } } } Zusammengeführte Version Exportfunktion Entprellung(f, t, im = false){ lass Timer, Flag = true; return (...args) => { // Muss sofort ausgeführt werden, wenn (im){ wenn (Flagge) { f(...args); Flagge = falsch; }anders { Zeitüberschreitung löschen(Timer); Timer = setzeTimeout(() => { f(...args); Flagge = wahr }, T) } }anders { // Nicht sofortige Ausführung clearTimeout(timer); Timer = setzeTimeout(() => { f(...args) }, T) } } }
Funktionsdrosselung
Erste nicht sofortige Ausführung Exportfunktion Drosselklappe (f, t) { lass Timer = true; return (...arg)=>{ wenn(!timer){ zurückkehren; } Timer=falsch; setzeTimeout(()=>{ f(...arg); Timer=wahr; },T) } }
Erste Version mit sofortiger Ausführung Exportfunktion throttleFirstExt(f, t) { lass flag = wahr; return (...args) => { wenn (Flagge) { f(...args); Flagge = falsch; setzeTimeout(() => { Flagge = wahr }, T) } } }
Zusammengeführte Version Exportfunktion Drosselklappe (f, t, im = false) { lass flag = wahr; return (...args)=>{ wenn(Flagge){ Flagge = falsch im && f(...args) setzeTimeout(() => { !im && f(...args) Flagge = wahr },T) } } } Anwendungsszenarien:
ZusammenfassenDies ist das Ende dieses Artikels über die korrekte Verwendung der Vue-Funktion Anti-Shake und Throttling. Weitere relevante Inhalte zur Vue-Funktion Anti-Shake und Throttling finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: So erstellen Sie schnell ELK basierend auf Docker
>>: Lösung für das Problem, dass MySql immer das mySqlInstallerConsole-Fenster öffnet
Inhaltsverzeichnis Das Grundprinzip von MySQL Mas...
Die Funktion, die ich erreichen möchte, besteht d...
In diesem Artikelbeispiel wird der spezifische Co...
Die Zeit der virtuellen VM Ware-Maschine CentOS s...
x-ua-compatible wird verwendet, um das Modell für...
Wie füge ich jedes Mal eine Ladeanimation hinzu, ...
Sechs EffekteImplementierungscode html <h1>...
Überlegungen zu den beiden Sichtweisen „menscheno...
Inhaltsverzeichnis 1. Oberflächliche Kopie 1. Obj...
Inhaltsverzeichnis 1. Hilfeinformationen nutzen 2...
Inhaltsverzeichnis Vorwort 1. SCP-Nutzung 2. Verw...
SQL UNIQUE-Einschränkung Die UNIQUE-Einschränkung...
Inhaltsverzeichnis 1. Wenn die Maus über das Karu...
Dieser Artikel beschreibt, wie man eine MySQL Mas...
Inhaltsverzeichnis Vorwort Webpack-Deb-Server Sta...