Vor- und Nachteile der Schließung [Anti-Shake und Throttling und Anwendungsszenarien]

was ist

Mit einem Wort: Eine Closure ist eine Funktion, die Zugriff auf Variablen im Bereich einer anderen Funktion hat

Ermöglicht einer Funktion den Zugriff auf Variablen im Bereich einer anderen Funktion

Vor- und Nachteile von Verschlüssen

  • Der Vorteil der Verwendung von Closures besteht darin, dass eine Verschmutzung durch globale Variablen vermieden und der Lebenszyklus von Variablen verlängert werden kann.

  • Der Nachteil ist, dass die Variablen in der Funktion aufgrund der Schließung im Speicher gespeichert werden , was viel Speicher verbraucht, sodass die Schließung nicht missbraucht werden kann, da dies sonst zu Leistungsproblemen der Webseite und möglicherweise zu Speicherlecks führen kann in niedrigeren Versionen von IE . Die Lösung besteht darin, alle unbenutzten lokalen Variablen zu löschen, bevor die Funktion beendet wird .

Anti-Shake und Throttling sowie Anwendungsszenarien

Kurze Beschreibung:

(1) Anti-Shake: Bedeutet, dass nur der letzte Trigger mehrmals hintereinander innerhalb eines bestimmten Zeitraums ausgeführt wird.

(2) Throttle: Reduzieren Sie die Häufigkeit der Trigger für einen bestimmten Zeitraum

Szenen:

Anti-Shake: Suche Lenovo, der Benutzer klickt auf die Schaltfläche, wenn er kontinuierlich Werte eingibt oder sich anmeldet

Drosselung: Maus ziehen

Curry

Currying ist eine Funktion, die ein Argument nach dem anderen annimmt und eine neue Funktion zurückgibt, die das nächste Argument erwartet, wobei das Closure-Prinzip verwendet wird. Es ist eine Funktionstransformation, die f(a,b,c) so konvertiert, dass sie als f(a)(b)(c) aufrufbar ist.

Vorteil:

  • Die funktionale Programmierung kann ohne Redundanz prägnant erfolgen.

  • Funktionen können als Rückgabewerte ausgegeben werden, die vorzeitig zurückkehren.

reine Funktion

1. Der Rückgabewert bezieht sich nur auf die Funktionsparameter und hat nichts mit der Außenwelt zu tun. Egal welche Änderungen extern passieren, der Rückgabewert der Funktion ändert sich nicht

2. Innerhalb der Funktion erstellte Variablen. Änderungen haben keine Nebenwirkungen

Zusammenfassung: Einfach ausgedrückt hängt das Rückgabeergebnis einer Funktion nur von ihren Parametern ab, und es gibt keine Seiteneffekte während der Ausführung.

Umfang

Der sogenannte Scope ist der Bereich, in dem die Variable wirken kann

Bereichskette

Unter Funktionsverschachtelung wird die Kettenregel von innen nach außen Scope-Kette genannt

Ereignisschleife

  • JS ist Single-Threaded, d. h. es kann immer nur eine Aufgabe gleichzeitig ausgeführt werden

  • In JS werden Aufgaben in synchrone Aufgaben und asynchrone Aufgaben unterteilt

    1. Synchrone Aufgabe: Wird im Haupt-Thread ausgeführt, bildet einen Ausführungsstapel und führt die nächste Aufgabe aus, nachdem die vorherige Aufgabe ausgeführt wurde

      • Wie For-Schleife, Ereignisbindung, Dom ...

    2. Asynchrone Aufgabe: Durch die Rückruffunktion kann sie verwendet werden, um andere Aufgaben auszuführen, während die Aufgabe ausgeführt wird

      • Wie Timer-Rückrufe, Ajax-Rückrufe, Ereignisfunktionen

  • Asynchrone Aufgaben werden in Makroaufgaben und Mikroaufgaben unterteilt

    • Makroaufgaben: setTimeout, setInterval, Ajax, Dom-Ereignisüberwachung ...

    • Microtasks: Promises, .then, async/await...

      Umsetzungsprozess

      • Priorisieren Sie die Ausführung synchroner Aufgaben. Wenn Sie auf asynchrone Aufgaben stoßen, schieben Sie sie in die Aufgabenwarteschlange. Nachdem die synchronen Aufgaben ausgeführt wurden, führen Sie die asynchronen Aufgaben in der Aufgabenwarteschlange aus. Asynchrone Aufgaben werden in Makroaufgaben und Mikroaufgaben unterteilt. Führen Sie Mikroaufgaben zuerst aus , und führen Sie dann Makroaufgaben aus

Was ist das Prinzip von Ajax? Umsetzungsschritte?

Senden Sie über das XmlHttpRequest-Objekt eine asynchrone Anforderung an den Server, rufen Sie Daten vom Server ab und bearbeiten Sie dann mit JavaScript das DOM, um die Seite zu aktualisieren.

Schritt:

  1. Erstellen Sie ein XMLHttpRequest-Objekt, also ein asynchrones Aufrufobjekt.

  2. Erstellen Sie eine neue HTTP-Anforderung und geben Sie die Methode, die URL und die Authentifizierungsinformationen der HTTP-Anforderung an.

  3. Legt die Funktion fest, die auf Zustandsänderungen von HTTP-Anforderungen reagiert.

  4. Senden Sie eine HTTP-Anfrage.

  5. Rufen Sie die vom asynchronen Aufruf zurückgegebenen Daten ab.

Supongo que te gusta

Origin blog.csdn.net/jiangshen_a/article/details/126939413
Recomendado
Clasificación