Une brève introduction à l'exécution asynchrone en JS
L'éditeur suivant vous apportera une brève discussion sur l'exécution asynchrone de js. L'éditeur le trouve plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence pour tout le monde. Suivons l'éditeur pour y jeter un œil.
1.JavascriptL'environnement d'exécution du langage est "single thread":
Avantages : il est relativement simple à mettre en œuvre et l'environnement d'exécution est relativement simple ;
Inconvénients : tant qu'une tâche prend beaucoup de temps, les tâches suivantes doivent être mises en file d'attente, ce qui retardera l'exécution de l'ensemble du programme. L'absence de réponse courante du navigateur (mort suspendue) est souvent causée par un certain morceau de code Javascript exécuté pendant une longue période (comme une boucle infinie), ce qui bloque la page entière à cet endroit et empêche d'autres tâches d'être effectuées.
Afin de résoudre ce problème, le langage Javascript divise le mode d'exécution des tâches en deux types : synchrone (Synchronous) et asynchrone (Asynchronous).
2. Plusieurs méthodes de programmation en "mode asynchrone" :
(1) fonction de rappel : L'avantage est qu'il est simple, facile à comprendre et à déployer, mais l'inconvénient est qu'il n'est pas propice à la lecture et à la maintenance du code. Les différentes parties sont fortement couplées (Coupling), ce qui rend. la structure du programme est confuse et le processus difficile à suivre (en particulier les fonctions de rappel imbriquées), et une seule fonction de rappel peut être spécifiée pour chaque tâche.
(2) Adopter le mode événementiel (écoute d'événements) : L'avantage est qu'il est plus facile à comprendre, plusieurs événements peuvent être liés et plusieurs événements peut être spécifié pour chaque événement. La fonction de rappel peut être "découplée", ce qui est propice à la réalisation de la modularisation. L'inconvénient est que l'ensemble du programme doit être piloté par des événements et que le processus en cours devient très flou.
(3)Modèle d'observateur (modèle de publication-abonnement) : La nature de cette méthode est similaire à « l'écoute d'événements », mais c'est évidemment mieux que ce dernier. Parce que nous pouvons surveiller le fonctionnement du programme en consultant le « Centre de messages » pour voir combien de signaux existent et combien d'abonnés chaque signal possède.
3. Contrôle des processus des opérations asynchrones.
(1) Exécution en série : Écrivez une fonction de contrôle de processus et laissez-la contrôler les tâches asynchrones. Une fois qu'une tâche est terminée, une autre exécute. un autre.
var items = [ 1, 2, 3, 4, 5, 6 ]; var results = []; function series(item) { if(item) { async( item, function(result) { results.push(result); return series(items.shift()); }); } else { return final(results); } } series(items.shift());
La série de fonctions est une fonction série. Elle exécutera des tâches asynchrones en séquence. La fonction finale ne sera exécutée que lorsque toutes les tâches seront terminées. Le tableau items stocke les paramètres de chaque tâche asynchrone et le tableau results stocke les résultats en cours d'exécution de chaque tâche asynchrone.
(2) Exécution parallèle : Toutes les tâches asynchrones sont exécutées en même temps et la fonction finale n'est exécutée que lorsque toutes sont terminées.
//forEach方法会同时发起6个异步任务,等到它们全部完成以后,才会执行final函数。 var items = [ 1, 2, 3, 4, 5, 6 ]; var results = []; items.forEach(function(item) { async(item, function(result){ results.push(result); if(results.length == items.length) { final(results); } }) });
L'avantage de l'exécution parallèle est qu'elle est plus efficace Par rapport à l'exécution en série, qui ne peut exécuter qu'une seule tâche à la fois, elle permet de gagner du temps. Mais le problème est que s’il existe de nombreuses tâches parallèles, il est facile d’épuiser les ressources du système et de ralentir la vitesse de fonctionnement. Il existe donc une troisième méthode de contrôle des processus.
(3) Combinaison de parallèle et de série : Définissez un seuil, et seules n tâches asynchrones peuvent être exécutées en parallèle au maximum à la fois. Cela évite une utilisation excessive des ressources système.
//变量running记录当前正在运行的任务数,只要低于门槛值,就再启动一个新的任务 //如果等于0,就表示所有任务都执行完了,这时就执行final函数 //最多只能同时运行两个异步任务。 var items = [ 1, 2, 3, 4, 5, 6 ]; var results = []; var running = 0; var limit = 2; function launcher() { while(running < limit && items.length > 0) { var item = items.shift(); async(item, function(result) { results.push(result); running++; if(items.length > 0) { launcher(); } }); running--; if(running == 0) { final(); } } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de reconnaissance vocale en ligne Introduction : Avec le développement continu de la technologie, la technologie de reconnaissance vocale est devenue une partie importante du domaine de l'intelligence artificielle. Le système de reconnaissance vocale en ligne basé sur WebSocket et JavaScript présente les caractéristiques d'une faible latence, d'un temps réel et d'une multiplateforme, et est devenu une solution largement utilisée. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de reconnaissance vocale en ligne.

WebSocket et JavaScript : technologies clés pour réaliser des systèmes de surveillance en temps réel Introduction : Avec le développement rapide de la technologie Internet, les systèmes de surveillance en temps réel ont été largement utilisés dans divers domaines. L'une des technologies clés pour réaliser une surveillance en temps réel est la combinaison de WebSocket et de JavaScript. Cet article présentera l'application de WebSocket et JavaScript dans les systèmes de surveillance en temps réel, donnera des exemples de code et expliquera leurs principes de mise en œuvre en détail. 1. Technologie WebSocket

Introduction à l'utilisation de JavaScript et de WebSocket pour mettre en œuvre un système de commande en ligne en temps réel : avec la popularité d'Internet et les progrès de la technologie, de plus en plus de restaurants ont commencé à proposer des services de commande en ligne. Afin de mettre en œuvre un système de commande en ligne en temps réel, nous pouvons utiliser les technologies JavaScript et WebSocket. WebSocket est un protocole de communication full-duplex basé sur le protocole TCP, qui peut réaliser une communication bidirectionnelle en temps réel entre le client et le serveur. Dans le système de commande en ligne en temps réel, lorsque l'utilisateur sélectionne des plats et passe une commande

JavaScript et WebSocket : Construire un système efficace de prévisions météorologiques en temps réel Introduction : Aujourd'hui, la précision des prévisions météorologiques revêt une grande importance pour la vie quotidienne et la prise de décision. À mesure que la technologie évolue, nous pouvons fournir des prévisions météorologiques plus précises et plus fiables en obtenant des données météorologiques en temps réel. Dans cet article, nous apprendrons comment utiliser la technologie JavaScript et WebSocket pour créer un système efficace de prévisions météorologiques en temps réel. Cet article démontrera le processus de mise en œuvre à travers des exemples de code spécifiques. Nous

Tutoriel JavaScript : Comment obtenir le code d'état HTTP, des exemples de code spécifiques sont requis Préface : Dans le développement Web, l'interaction des données avec le serveur est souvent impliquée. Lors de la communication avec le serveur, nous devons souvent obtenir le code d'état HTTP renvoyé pour déterminer si l'opération a réussi et effectuer le traitement correspondant en fonction de différents codes d'état. Cet article vous apprendra comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournira quelques exemples de codes pratiques. Utilisation de XMLHttpRequest

Programmation simultanée et asynchrone La programmation simultanée traite de plusieurs tâches s'exécutant simultanément, la programmation asynchrone est un type de programmation simultanée dans laquelle les tâches ne bloquent pas les threads. asyncio est une bibliothèque de programmation asynchrone en python, qui permet aux programmes d'effectuer des opérations d'E/S sans bloquer le thread principal. Boucle d'événements Le cœur d'asyncio est la boucle d'événements, qui surveille les événements d'E/S et planifie les tâches correspondantes. Lorsqu'une coroutine est prête, la boucle d'événements l'exécute jusqu'à ce qu'elle attende les opérations d'E/S. Il met ensuite la coroutine en pause et continue d'exécuter d'autres coroutines. Coroutines Les coroutines sont des fonctions qui peuvent suspendre et reprendre l'exécution. Le mot-clé asyncdef est utilisé pour créer des coroutines. La coroutine utilise le mot-clé wait pour attendre la fin de l'opération d'E/S. Les bases suivantes d'asyncio

Introduction à la méthode d'obtention du code d'état HTTP en JavaScript : Dans le développement front-end, nous devons souvent gérer l'interaction avec l'interface back-end, et le code d'état HTTP en est une partie très importante. Comprendre et obtenir les codes d'état HTTP nous aide à mieux gérer les données renvoyées par l'interface. Cet article explique comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournit des exemples de code spécifiques. 1. Qu'est-ce que le code d'état HTTP ? Le code d'état HTTP signifie que lorsque le navigateur lance une requête au serveur, le service

Développement de coroutines asynchrones PHP : accélération de la mise en cache des données et des opérations de lecture et d'écriture. Dans le développement d'applications réel, la mise en cache des données et les opérations de lecture et d'écriture sont des goulots d'étranglement courants en termes de performances. Afin d'améliorer l'efficacité du système et l'expérience utilisateur, la technologie de coroutine asynchrone PHP peut être utilisée pour accélérer ces opérations. Cet article présentera les concepts et principes de base des coroutines asynchrones PHP et fournira des exemples de code spécifiques. 1. Le concept et le principe de la coroutine asynchrone La coroutine asynchrone est une technologie de programmation simultanée efficace qui utilise un seul thread pour réaliser une planification et une collaboration légères des tâches. Par rapport à la programmation simultanée multithread ou multiprocessus traditionnelle
