初识nodejs

前端之家收集整理的这篇文章主要介绍了初识nodejs前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

<h1 id="初识nodejs" data-anchor-id="vbcy"> 
<div class="md-section-divider">node.js是什么东西?


  • nodejs是以chrome v8为运行环境的一个平台,它不是一门语言,而是一个平台,
  • nodejs致力于是构建速度快,稳定的网络程序更简单
  • 它具有事件驱动和非阻塞I/O的特色,使之轻量级并且高效率
  • 它非常适合在分布式设备运行数据密集型实时应用程序

  • 性能,异步IO,事件驱动的语言,因为JavaScript中是单线程执行的,所以没有同步IO,他便选定了JavaScript来作为基础实现的语言,同时由于谷歌的v8引擎是开源的,而且是运行JavaScript很快的引擎,便很机智的选择了chrome v8引擎来作为基础环境了,


    支持,使用JavaScript来做语言支持,大概意思就是我们之前使用JavaScript运行在浏览器端去处理dom,bom操作等等,现在JavaScript运行在服务器去处理数据的增删改查,接受请求,发送数据,查找修改文件,WHAT?这么吊?对的,现在使用JavaScript你就可以去做那些以前你觉得很牛逼的事情.

    文件,然后去执行数据库查询,查询后将响应体返回给浏览器,这是一个大致的过程,那么在以前的服务器中,例如Apache,每一个请求事件它都会去创建一个新的进程去处理这个请求,

    页面的刷新了,而是进行局部的刷新,我们只需要去向服务器请求我们需要的那一部分数据就行了,这是一个巨大的进步.

    用户的朋友圈都在实时的更新当中,按照我们以前的做法是给每一个用户都和数据库端有一个长链接(long polling),

    所谓的长链接,就是我们每个用户都和服务器有一个链接,由于服务器不会主动向浏览器发送数据,当链接建立之后,不会立马断开,服务器端会一直在等待,当浏览器需要它将更新的数据返回时它才会发送数据,例如你有一个朋友在微信上给你发了一条消息,这是服务器端就会向你的微信端发送一个消息,当浏览器端接受到了消息之后,会将当前链接断开,但是会再理解建立一个链接.

    链接占用着资源,那么怎么解决呢?用nodejs就可以解决,nodejs有着非阻塞IO和事件驱动的特点,这些术语其实并不是那么的复杂,我们可以将非阻塞IO想象成一个事件循环,这个事件循环在不停的转啊转,有请求进来时,就将他装进这个事件循环,每一个事件都有一个回调,当我们产生一个请求时,不用等待,而是直接将该进程放进事件循环中,当数据库有信息返回时再触发回调函数.每个请求就像ajax执行时那样,不需要等待, 当我们的服务器请求结果返回了,事件循环就把结果传回用户的浏览器,接着继续跑,在这种方式下,我们的服务器就不会闲着了,(在多线程下有可能一些线程都没有什么用)并且从理论上讲,同一时刻的数据库查询数量,以及用户的请求数量就没有限制了,服务器只在用户那边有请求的时候才响应,这就是事件驱动.更多的可以理解为单核手机模拟四核手机的情况.

    猜你在找的Node.js相关文章