深入浅出node读书笔记(一)

  老早就想读这本书了,可是因为这样那样的原因,总归是耽搁了,前几天一直在纠结毕业设计用什么语言来实现后端逻辑代码的问题,通过一周时间的痛苦挣扎,选择了node,于是就又开始学习node了,希望写随笔这种形式能够逼着我把node好好研究一遍。

  首篇文章主要讲述该书的第一个章节,因为是读书笔记,内容可能不会很全面,大概只会写下我认为重要的东西,一些无关紧要的内容可能略过。本篇文章主要从两个方面来介绍node,分别是:node的特点以及node的使用场景。

  (1)node的特点:

    a)异步I/O:异步I/O对前端来说应该相对熟悉一些,首先看下面一个ajax请求的例子: 

$.ajax({
   url:'www.baidu.com',
   type:'post',
   data:'data',
   success:function(){
       console.log('请求完成');
   }  
})
console.log('开始请求')

           执行完的结果是:开始请求

                                  请求完成

           当请求发出后,js单线程即不等待请求结果,继续执行下边的代码,当请求完成后,success函数被触发,执行里面的代码,即异步

           b)回调函数:见上一条ajax实例,sucess即为该次请求成功之后的回调函数,请求成功之后调用

           c)单线程:总所周知,js是单线程的,在浏览器端如果线程用来长时间执行js代码,就会阻碍ui的渲染过程,h5定义一个新的api web works来解决这个问题。与之类似,在服务器                              端,如果js的单线程用来执行cpu密集型业务,也会阻碍回调函数的执行以及新事件的绑定,于是node作者采用了child_process子进程来解决这个问题

           d)跨平台:在windows和*nix系统上都能运行node,因为node与操作系统之间构建了一个中间层libuv来顺利兼容不同的操作系统

       (2)node的应用场景:

            a)I/O密集型:基于事件驱动的回调函数无阻塞模式,性能提高

            b)分布式:此处没有研究,暂时应该用不到,忽略之!

原文地址:https://www.cnblogs.com/jakii/p/5116460.html