zoukankan      html  css  js  c++  java
  • Node.js 初步了解

    Node.js的特点:单线程、非阻塞异步I/O、事件驱动

    先来说说I/O:I就是input数据读取,O就是Output数据的写入,大部分网站I/O是非常多的,,但是I/O的时候cpu是命令磁盘去做事情,此时CPU自己就闲置了。

    同步(synchronous):当系统遇见了一个需要耗费大量时间的事情的时候,选择死等。

    异步(Asynchronous):当系统遇见了一个需要耗费大量时间的事情的时候,不死等,先做后面的事情,耗时事情做完之后,执行回调函数。

    Node.js是后台的东西

    我们写一段程序来举例

    //读取内置模块http,这个模块开发服务器用的
    var http = require("http");
    
    //创建一个服务器
    var server = http.createServer(function(req,res){
      res.setHeader("Content-Type","text/html;charset=UTF-8");   res.end(
    "<h1>哈哈哈,我买了一个iPhone" + (4 + 4) + "Plus,</h1>"); }); //监听 server.listen(3000)

    写完后使用cmd命令调用

    在Node.js中用谁 就Node谁

    此时光标挂起,并没有返回,表示此时node正在执行一个监听。

    按ctrl+c可以将结束挂起状态。

    访问3000端口就可以看到页面了

    我们F12查看源代码

    此时我们查看源代码,我们发现数字8是直接写上去的,没有4+4的运算痕迹。

    原因就是NodeJS运行在服务器端,而不是浏览器端。服务器计算了数字8之后,发给了浏览器就是扁平的、纯粹的HTML了,没有任何程序。

     

    单线程

    Node.js中只使用一个线程。

    异步I/O特性

    简要概括就是:

    当在访问数据库取得数据的时候,需要一段较长的时间。在传统的处理机制中,在执行了访问数据库代码之后,整个线程都将暂停下来,等待数据库返回结果,才能执行后面的代码。也就是说,I/O阻塞了代码的执行,极大地降低了程序的执行效率。

    由于Node.js中采用了非阻塞型I/O机制,因此在执行了访问数据库的代码之后,将立即转而执行其后面的代码,把数据库返回结果的处理代码放在回调函数中,从而提高了程序的执行效率。

    事件驱动

    事件驱动是NodeJS的底层机制,我们只需要了解NodeJS不会发生错误的原因就是事件驱动,有一个事件环。

    事件环机制是NodeJS的底层机制,保证了NodeJS可以高效准确的运行而不会紊乱。

    node.js适合干什么?

    当应用程序需要处理大量并发的I/O,而在向客户端发出响应之前,应用程序内部并不需要进行非常复杂的处理的时候,Node.js非常适合。Node.js也非常适合与web socket配合,开发长连接的实时交互应用程序。

    比如:

    ● 用户表单收集

    ● 考试系统

    ● 打分系统

    ● 聊天室

    ● 图文直播

  • 相关阅读:
    nodejs初期,搭建一个登陆注册功能,(原生的)
    关于vue如何创建一个自定义组件(这是项目中经常得用的)
    关于vue 使用watch方法,详解。
    怎样用Nodejs搭建一个服务器
    关于Promise的理解及运用
    Ado.NET SQLHelper(2)
    Ado.NET SQLHelper
    MS SQLSERVER 自增ID列竟然会重复
    SQL中Left Join 与Right Join 与 Inner Join 与 Full Join的区别
    thread.start和threadstart.invoke的区别
  • 原文地址:https://www.cnblogs.com/kun666/p/9464106.html
Copyright © 2011-2022 走看看