Node.Js使用事件驱动模型,当web server接收到请求,就把它关闭然后进行处理,然后去服务下一个web请求。当这个请求完成,它被放回处理队列,当到达队列开头,这个结果被返回给用户。这个模型非常高效可扩展性非常强,因为webserver一直接受请求而不等待任何读写操作。(这也被称之为非阻塞式IO或者事件驱动IO)
下面这个过程:
1,你用浏览器访问nodejs服务器上的"/about.html"
2,nodejs服务器接收到你的请求,调用一个函数从磁盘上读取这个文件。
3,这段时间,nodejs webserver在服务后续的web请求。
4,当文件读取完毕,有一个回调函数被插入到nodejs的服务队列中。
5,nodejs webserver运行这个函数,实际上就是渲染(render)了about.html页面返回给你的浏览器。
就节省了几微秒时间,但对于需要相应大量用户的web server很重要。