Heim > Web-Frontend > js-Tutorial > Hauptteil

Prinzip der asynchronen Javascript-Aufgabe (Bild und Text)

西门大官人
Freigeben: 2018-07-13 14:41:31
Original
2010 Leute haben es durchsucht

Wie wir alle wissen, kann JavaScript-Code nur in einem Thread ausgeführt werden, d Im Code ist es wahrscheinlich, dass der Browser einfriert.

Warum ist JavaScript als Single-Threaded-Modell konzipiert?

Die Designer von Javascript glauben, dass die Komplexität des Programms erheblich zunimmt, wenn Javascript für Multithreading ausgelegt ist. Wenn es beispielsweise zwei Threads gibt, ist ein Thread für die Erstellung verantwortlich Eine Schaltfläche und ein anderer Thread. Diese Schaltfläche löschen. Aufgrund der Ungewissheit über die Reihenfolge der Multithread-Ausführung kann diese Schaltfläche auf der Seite angezeigt werden, was den Entwicklern große Probleme bereiten wird. Der Einfachheit halber wurde JavaScript daher von Anfang an als Single-Threaded-Modell konzipiert, was das Kernmerkmal von JavaScript darstellt.

Um die Single-Thread-Beschränkung von Javascript zu lösen, werden die Aufgaben im Javascript-Programm unterteilt in: synchrone Aufgaben und asynchrone Aufgaben

Prinzip der asynchronen Javascript-Aufgabe (Bild und Text)

Synchronisierte Aufgaben: bezieht sich auf Aufgaben, die zur Ausführung in die Warteschlange gestellt werden und nicht von der JavaScript-Engine im Hauptthread angehalten werden. Die Ausführung der nächsten Aufgabe beginnt erst, nachdem die vorherige Aufgabe abgeschlossen ist.

Asynchrone Aufgaben: bezieht sich auf einige zeitaufwändige Aufgaben (z. B. E/A-Anfragen), die von der JavaScript-Engine in die Aufgabenwarteschlange gestellt werden, da sich diese Aufgaben nicht im Hauptthread befinden. Diese Aufgaben werden erst ausgeführt, wenn sie für den Hauptthread geplant sind (z. B. eine Rückruffunktion in Ajax).

Woher kommt also die Aufgabenwarteschlange?

Tatsächlich erstellt die JavaScript-Engine bei der Ausführung von JavaScript zusätzlich zum Hauptthread auch einige Aufgabenwarteschlangen, die einige asynchrone Aufgaben enthalten, die das aktuelle Programm verarbeiten muss, z. B. asynchrone Rückruffunktionen von Ajax. Funktionen in setTimeout und so weiter. Wenn alle Aufgaben im Hauptthread ausgeführt werden, prüft die Engine in jeder Aufgabenwarteschlange, ob Aufgaben vorhanden sind, die die Ausführungsbedingungen erfüllen. Wenn ja, wird sie zur Ausführung im Hauptthread eingeplant.


Das obige ist der detaillierte Inhalt vonPrinzip der asynchronen Javascript-Aufgabe (Bild und Text). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!