Node.js的特点和应用场景

Node.js的特点和应用场景
Node.js是当今最热门的技术之一,本文主要介绍了Node.js的特点和应用场景。

js是一个基于浏览器的Javascript运行平台,这是用来方便地建立快速和易于扩展网络应用,具有事件驱动的Node.js的援助,阻止我/ O模型变得轻便快捷的非,是数据密集型实时应用程序运行在分布式设备非常适合。

1。特点

1.1异步I/O

所谓的异步I / O是相对于同步我/ o.a很多我 / O操作是在程序执行的过程要求,如读写文件输入和输出,请求响应,等等。一般来说,我 / O操作非常time-consuming.in传统编程模型,例如,你想读几G的文件,和整个线程暂停,等待文件读下去。换句话说,我 / O操作阻止代码的执行,大大降低了程序的效率。

异步I/O对前端工程师并不陌生,因为Ajax请求的启动是最常见的异步调用,在节点中,读取文件(读取文件是一个耗时的I/O操作)作为示例,类似于编写Ajax请求:

复制代码代码如下所示:

VaR FS =需要('fs);

Fs.readFile( /路径功能(呃,文件){

console.log(读取文件完成);

});

console.log('begin读取文件);
在代码中调用fs.readfile,后续的代码是立即执行,时间和读取的文件是不可预知的。当线程遇到我/ O操作,线程不等待的我/ O操作在一个封锁的方式结束,但只有发送我的I/O请求给操作系统,继续执行后续语句。当操作系统完成我 / O操作,线程是在一个事件中的一个事件通报的形式,和线程将在一个特定的时间过程中的事件。

1.2事件循环和回调函数

所谓的活动周期意味着节点将使用事件机制解决所有异步操作,和一个线程不断循环检测事件队列,事件循环检查是否有未处理的事件队列中的事件直到项目结束。事件编程是轻量级的,松散耦合的,并且只关注交易点。然而,在多个异步任务下,事件和事件是独立的、协作的,在Javascript,回调函数是无处不在的,回调函数是接受异步调用返回数据的最佳方式。

1.3单线程

节点保持JS的单线程的浏览器的特征。单线程的最大优点是它并不在意国家同步,如死锁的存在和线程上下文切换成本。单线程也有它的缺点,主要表现在三个方面:无法使用多核CPU;误差会导致整个应用程序退出,应用鲁棒性是值得研究的,和很多的计算会占用CPU,导致它无法继续调用异步我 / O。

为了解决这一问题,节点使用相同的想法作为HTML5的网络工作者,利用child_process解决单线程运算量大的问题。通过分布计算每个子过程,大量的计算可以分解并通过过程之间的事件消息

1.4跨平台

节点是一个跨平台的,那就是,JS代码一样可以部署到运行在Windows,Linux,OSX和其他平台。这主要是由于一层建筑,libuv节点施工、操作系统和节点上的模块系统之间。
2。应用场景

1),实时应用:如在线聊天、实时通知推送等(如socket IO)。

2)分布式应用程序:通过有效的并行I/O来使用现有的数据

3)工具类应用程序:大量的工具,小到前端压缩部署(如咕噜),大到桌面GUI应用程序

4)、游戏类应用:游戏领域对实时性和并发性要求高(如网易柚子框架)

5)通过使用稳定的界面来提高Web渲染能力。

6)在统一编程语言环境结束前和结束后:前端开发人员可以很快地切入开发服务器(例如著名的纯Javascript全堆栈平均架构)
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部