Node.js的特点

作为后端JavaScript的运行平台,Node保留了前端JavaScript中些熟悉的接口,没有改写语言本身的任何特性,依旧基于作用域和原型链,区别在于它将前端中广泛应用的思想作用到了服务器端。下面我们来看看Node相对于其他语言的一些特点。

1、异步I/O

关于I/O,向前端工程师解释起来会比较容易一些,因为发起Ajax请求用对于前端工程而言是再熟悉不过的场景了。下的用于发起一个Ajax请求:

$(Function(){
   $.post('/url', {title: '入出Node.js'}, function (data) {
   console.log('收到响应结果');
   });
   console.log('发送Ajax结束');
});

熟悉异步调用的的用户必然知道,‘收到响应结果’是在‘发送Ajax结束’之后输出的。在用$.post() 后,后续代码是立即执行的,而收到响应结果所占用的时间是不确定的。

异步执行的特点就是:无需等待服务器响应,继续执行后续动作,这也是异步和同步最本质的区别。Node.Js的绝大多数执行过程是异步的!

在Node中异步I/O也很常见。以读取文件为例:

var fs = require('fs');
   fs.readFile('/path', function (err, file) {
   console.log('读取第一个文件完成') });
   console.log('发起读取第二个文件');

Node中的异步I/O和上述中的异步调用执行步骤是一样的,在读取第一个文件的过程中,无需等待服务器响应,就会紧接着发起读取第二个文件。因此,在本案例中,发起读取第二个文件 是在 读取第一个文件完成 之前输出的!

同步操作和异步操作的区别相信大家都明白了!耗时方面:同步执行的结果是:1+1=2,异步执行的结果是:1+1<2

2、事件与回调函数

Node.js的特点

3、单线程

Node.js的特点

Node.js的特点

上一篇:BZOJ 4665: 小w的喜糖


下一篇:转码:unescape("%u7B80%u4F53%u4E2D%u6587")--->escape("简体中文")