Einfache Drosselung in JavaScript mit benutzerdefinierter Implementierung
Bei der Arbeit mit JavaScript kann die Steuerung der Funktionsausführungsraten von entscheidender Bedeutung sein. Drosselfunktionen begrenzen die Häufigkeit von Funktionsaufrufen und verhindern so eine überwältigende Verarbeitung oder sich wiederholende Benutzeraktionen.
In diesem Beitrag stellen wir eine einfache benutzerdefinierte Drosselfunktion vor, um dies zu erreichen, ohne auf externe Bibliotheken wie Lodash oder Underscore angewiesen zu sein.
Die bereitgestellte Drosselfunktion zeigt, obwohl sie funktionsfähig ist, ein unerwünschtes Verhalten: Sie löst die Funktion nach der Drosselzeit erneut aus. Dies kann zu unbeabsichtigten Funktionsaufrufen führen, insbesondere in Szenarien wie Tastendruckereignissen.
Um dies zu beheben, empfehlen wir die Implementierung von Drosselungsfunktionen basierend auf gut getestetem Code aus etablierten Bibliotheken wie Underscore.js oder Lodash. Hier ist eine leicht modifizierte Version des Underscore-Drosselklappencodes als Referenz:
function throttle(func, wait, options) { // ... }
Wenn Sie jedoch einen individuelleren und leichteren Ansatz bevorzugen, sollten Sie die folgende vereinfachte Drosselklappenfunktion in Betracht ziehen:
function throttle (callback, limit) { // ... }
Diese Grundfunktion bietet eine einfache Möglichkeit, Funktionsausführungen ohne zusätzliche Konfigurationsoptionen zu drosseln.
Denken Sie daran, dass wir durch die Bereitstellung sowohl benutzerdefinierter als auch Open-Source-Optionen bestrebt sind, verschiedenen Codierungen gerecht zu werden Vorlieben und Projektanforderungen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3