Maison  >  Article  >  interface Web  >  Que peut faire node.js ? Un résumé des fonctions de node.js en quelques minutes

Que peut faire node.js ? Un résumé des fonctions de node.js en quelques minutes

寻∝梦
寻∝梦original
2018-09-05 14:11:048870parcourir

Cet article présente principalement la définition de node.js, ainsi qu'un résumé des fonctions de node.js. J'espère que vous pourrez en savoir plus, lisons cet article ensemble

Tout d'abord, regardons ce que node.js peut faire ?

Ceci est une introduction plus formelle à node

Node.js est un environnement d'exécution JavaScript basé sur le moteur Chrome V8.

Node.js utilise un modèle d'E/S non bloquant et piloté par les événements, ce qui le rend léger et efficace. (Axé sur les événements : une stratégie de prise de décision pendant le processus de déclenchement d'un événement. En termes simples, il s'agit de suivre les choses qui apparaissent à un moment donné et d'appeler les ressources disponibles pour résoudre les choses, afin que les choses qui continuent d'apparaître peut être résolu et empêcher l'accumulation de choses)

Le gestionnaire de paquets de Node.js, npm, est devenu le plus grand écosystème open source au monde. Si vous voulez en savoir plus, rendez-vous sur le site PHP chinois

Tutoriel vidéo node.js

Voici les définitions de nodejs. Jetons maintenant un œil au résumé du. rôle de nodejs :

node.js présente plusieurs avantages particulièrement importants : rapide, hautes performances, haute efficacité de développement et large gamme d'applications

D'autres vous le diront généralement vaguement : node .js n'est pas bloquant. Des fonctionnalités telles que les E/S événementielles permettent de créer des applications avec une concurrence élevée (Polling) et Comet.

Quand vous ne le comprenez toujours pas après avoir lu ces explications, je vais vous aider à comprendre node.js de manière simple et grossière.

Le processus par lequel le navigateur envoie des requêtes au site Web n'a pas beaucoup changé. Lorsque le navigateur envoie une demande au site Web. Le serveur reçoit la demande et commence à rechercher la ressource demandée. Si nécessaire, le serveur interrogera également la base de données et renverra enfin les résultats de la réponse au navigateur.

Cependant, dans un serveur Web traditionnel (tel qu'Apache), chaque requête amènera le serveur à créer un nouveau processus pour gérer la requête.

Plus tard est venu l’Ajax. Avec Ajax, nous n'avons pas besoin de demander une nouvelle page complète à chaque fois, nous ne demandons qu'une partie des informations de page dont nous avons besoin à chaque fois. C'est évidemment une amélioration

. Mais si vous souhaitez créer un site de réseautage social comme FriendFeed (un site Web similaire à Renren pour actualiser les actualités de vos amis), vos amis proposeront de nouveaux statuts à tout moment et vos actualités seront automatiquement actualisées en temps réel.

Pour répondre à cette exigence, nous devons permettre aux utilisateurs de maintenir une connexion efficace avec le serveur. La méthode de mise en œuvre la plus simple à l'heure actuelle consiste à maintenir une longue interrogation entre l'utilisateur et le serveur.

Les requêtes HTTP ne sont pas des connexions continues. Vous demandez une fois, le serveur répond une fois, et puis c'est fini. L'interrogation longue est une technique qui utilise HTTP pour simuler une connexion persistante. Concrètement, tant que la page est chargée, que vous ayez besoin ou non que le serveur vous réponde, vous enverrez une requête Ajax au serveur.

Cette requête est différente de la requête Ajax générale. Le serveur ne vous renverra pas directement les informations, mais il attendra que le serveur estime qu'il est temps de vous envoyer des informations, puis il répondra. Par exemple, si votre ami publie un nouveau message, le serveur enverra le nouveau message à votre navigateur en réponse, puis votre navigateur actualisera la page. Une fois que le navigateur a reçu la réponse et l'a actualisée, il envoie une nouvelle demande au serveur. Cette demande ne recevra toujours pas de réponse immédiate. J'ai donc commencé à répéter les étapes ci-dessus. Grâce à cette méthode, le navigateur peut toujours attendre une réponse. Bien que le processus ci-dessus n'implique toujours que du HTTP non persistant, nous avons simulé un état de connexion apparemment continu

Regardons les serveurs traditionnels (tels qu'Apache). Chaque fois qu'un nouvel utilisateur se connecte à votre site Web, votre serveur doit ouvrir une connexion. Chaque connexion nécessite un processus, et ces processus sont inactifs la plupart du temps (par exemple, attendre que votre ami envoie de nouvelles nouvelles, attendre que l'ami ait fini d'envoyer le message avant de répondre à l'utilisateur. Ou attendre que la base de données revienne). résultats de requêtes, etc.).

Bien que ces processus soient inactifs, ils occupent toujours de la mémoire. Cela signifie que si le nombre de connexions utilisateur augmente jusqu'à une certaine échelle, votre serveur peut manquer de mémoire et s'effondrer.

Comment résoudre cette situation ? La solution est celle qui vient d’être mentionnée ci-dessus : non bloquante et événementielle. Ces concepts ne sont en réalité pas si difficiles à comprendre dans le scénario dont nous parlons.

Considérez un serveur non bloquant comme une boucle, et cette boucle continuera à fonctionner. Lorsqu'une nouvelle requête arrive, cette boucle reçoit la requête, la transmet à d'autres processus (par exemple, en la transmettant à un processus qui effectue des requêtes de base de données), puis répond par un rappel. Une fois terminé, la boucle continuera à s'exécuter et à recevoir d'autres requêtes. Descends comme ça. Le serveur n'attendra pas que la base de données renvoie les résultats comme auparavant.

Si la base de données renvoie le résultat, la boucle renverra le résultat au navigateur de l'utilisateur et continuera à s'exécuter. De cette façon, les processus de votre serveur ne resteront pas inactifs. Par conséquent, en théorie, il n’y a pas de limite au nombre de requêtes de base de données et de demandes d’utilisateurs en même temps. Le serveur répond uniquement lorsqu'un événement se produit du côté de l'utilisateur. Ceci est piloté par les événements.

FriendFeed utilise le framework non bloquant Tornado basé sur Python (Zhihu utilise également ce framework) pour implémenter la nouvelle fonction d'actualité mentionnée ci-dessus. Cependant, Node.js est encore meilleur que le premier.

Les applications Node.js sont développées via javascript, puis s'exécutent directement sur le moteur V8 anormal de Google. Avec Node.js, vous n'avez pas à vous soucier de la demande du client exécutant un morceau de code sur le serveur qui peut provoquer un blocage. Parce que JavaScript lui-même est un langage de script basé sur des événements. Si vous y réfléchissez, lorsque vous écrivez du JavaScript pour le front-end, vous traitez principalement du traitement des événements et des fonctions de rappel. JavaScript lui-même est un langage adapté au traitement des événements.

Node.js en est encore à ses débuts. Si vous souhaitez développer une application basée sur Node.js, vous devrez probablement écrire du code de très bas niveau.

Mais la prochaine génération de navigateurs adoptera bientôt la technologie WebSocket, et les longues interrogations disparaîtront. Dans le développement Web, les technologies comme Node.js vont devenir de plus en plus importantes.

Ce qui précède est le résumé de node.js dans cet article. Il est très détaillé. J'espère que vous pourrez en lire davantage afin que tout le monde puisse mieux comprendre node.js. Les étudiants qui souhaitent en savoir plus peuvent se rendre sur le site PHP chinois Manuel de développement Node.js colonne

[Recommandation de l'éditeur]

Comment personnaliser les polices en CSS ? Introduction aux styles de police de texte en html

Comment utiliser la balise de base html ? Résumé de l'utilisation de la balise de base HTML

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn