JavaScript与NodeJs
2013-12-21 09:59
239 查看
这些年WEB的发展应该可以称得上是突飞猛进了。当然这得益于互联网的迅速普及,以及移动网络越来越强的数据能力。我不认为技术的发展有什么特殊的动力,其实技术的发展的动力往往都十分的简单,那就是人们的需要。互联网发展这么多年,人们的需要也会越来越多,比如,希望反应更快,希望效果更好,随着手持设备的普及,可能还希望一些web的应用也能够同时支持手持设备。而互联网的发展达到一定的程度之后,量变导致质变,产生了云服务这样的概念。比如我现在,就已经在云上工作了。
WEB随着互联网的发展而壮大,浏览器作为WEB的终端其发展也是风起云涌的。而JavaScript作为唯一的浏览器脚本语言,其作用日益突出。与JS相关的技术也在不断的发展,并产生了很多相关的框架,比如Jquery,ExtJS,以及angularJS等。此外还有一个很特别的东西:NodeJS。Node是运行在服务器端的javascript容器,注意它是单进程的,同时不支持线程,但是其非阻塞IO,导致它看似简单的模型却有着不错的IO能力。不需要并发支持,看起来和具有并发支持的系统在响应上相差无几。
NodeJS是JS发展史上的重要里程碑。可能很多人没有意识到这一点。因为多数人特别是开发人员因循守旧,同时对于日新月异的互联网应用的发展与蓬勃的需求缺乏观察。NodeJS的出现极大的增强了javascript的伸缩性,同时也极大的增加了业务系统部署的伸缩性。部署伸缩性比较好理解,但javascript的伸缩性可能就不容易理解的,但这恰恰是Node的强处。其实也很简单,就是根据终端的情况可以把一些逻辑处理有选择性的放在client端或者server端。由于前后台都是JS的程序,所以这种切换很容易通过一些配置或者程序实现。举个例子:比如我们有一个GIS的应用,同时支持多种终端。在用户使用电脑系统的时候,很多的数据处理或者逻辑处理都可以在浏览器中运行,这是没有问题的。但是当用户使用手机或者其他手持设备的时候,由于手持设备资源较少,这个时候大量的数据处理或者逻辑运算就可以通过配置迁移到服务端运行,注意由于前端后端都是JS实现的,这种迁移实际上没有太多的开发工作量,顶多就是设计上有些麻烦而已。
这种功能对于复杂的前端的性能来说也有着很重要的意义,特别是一些复杂的GIS系统。因为GIS功能本身就以及有很大的计算和处理工作了,那么额外的运算和对于逻辑的处理可能会极大的加重浏览器的负担,导致程序运行缓慢甚至崩溃,但是使用NodeJS技术,我们就可以很容易的把大量的运算迁移到后台去,极大的减轻浏览器的负担,提升应用的性能。
最后我要说说socketIO。在NodeJS中,socketIO包可以把前后台的交互由明显的请求响应方式变成几乎没有界限的事件交互方式。这对于开发来说,方便不是一点,可以大大提高开发的效率。目前webSocket也比较成熟,分布部署也比较方便。总之,NodeJS一定是一个改变javascript开发方式的技术。而且很实用。
WEB随着互联网的发展而壮大,浏览器作为WEB的终端其发展也是风起云涌的。而JavaScript作为唯一的浏览器脚本语言,其作用日益突出。与JS相关的技术也在不断的发展,并产生了很多相关的框架,比如Jquery,ExtJS,以及angularJS等。此外还有一个很特别的东西:NodeJS。Node是运行在服务器端的javascript容器,注意它是单进程的,同时不支持线程,但是其非阻塞IO,导致它看似简单的模型却有着不错的IO能力。不需要并发支持,看起来和具有并发支持的系统在响应上相差无几。
NodeJS是JS发展史上的重要里程碑。可能很多人没有意识到这一点。因为多数人特别是开发人员因循守旧,同时对于日新月异的互联网应用的发展与蓬勃的需求缺乏观察。NodeJS的出现极大的增强了javascript的伸缩性,同时也极大的增加了业务系统部署的伸缩性。部署伸缩性比较好理解,但javascript的伸缩性可能就不容易理解的,但这恰恰是Node的强处。其实也很简单,就是根据终端的情况可以把一些逻辑处理有选择性的放在client端或者server端。由于前后台都是JS的程序,所以这种切换很容易通过一些配置或者程序实现。举个例子:比如我们有一个GIS的应用,同时支持多种终端。在用户使用电脑系统的时候,很多的数据处理或者逻辑处理都可以在浏览器中运行,这是没有问题的。但是当用户使用手机或者其他手持设备的时候,由于手持设备资源较少,这个时候大量的数据处理或者逻辑运算就可以通过配置迁移到服务端运行,注意由于前端后端都是JS实现的,这种迁移实际上没有太多的开发工作量,顶多就是设计上有些麻烦而已。
这种功能对于复杂的前端的性能来说也有着很重要的意义,特别是一些复杂的GIS系统。因为GIS功能本身就以及有很大的计算和处理工作了,那么额外的运算和对于逻辑的处理可能会极大的加重浏览器的负担,导致程序运行缓慢甚至崩溃,但是使用NodeJS技术,我们就可以很容易的把大量的运算迁移到后台去,极大的减轻浏览器的负担,提升应用的性能。
最后我要说说socketIO。在NodeJS中,socketIO包可以把前后台的交互由明显的请求响应方式变成几乎没有界限的事件交互方式。这对于开发来说,方便不是一点,可以大大提高开发的效率。目前webSocket也比较成熟,分布部署也比较方便。总之,NodeJS一定是一个改变javascript开发方式的技术。而且很实用。
相关文章推荐
- nodejs中简单实现Javascript Promise机制的实例
- 学习NodeJS第五天:JavaScript的继承
- nodejs 编译 报FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
- javascript模板添加nodejs支持
- javaScript Event Loop + NodeJs问题解析
- 开始学习NodeJs, javascript, 算法
- javascript_nodejs_express
- JavaScript、typescript、nodejs日期操作-笔记
- 用纯Javascript打造类似NodeJS的模块载入系统
- Windows下使用NodeJS和npm安装UglifyJS对JavaScript进行压缩或美化
- nodejs与javascript中的aes加密
- NodeJs(JavaScript)的面向对象编程
- [JavaScript]如何实现一个JS脚本能在browser和NodeJs里都是用
- 【JavaScript学习笔记】什么是NodeJs?
- 用纯Javascript打造类似NodeJS的模块载入系统
- Nodejs通过Thrift操作hbase卡住原因分析及与javascript的垃圾回收机制的关系
- nodejs操作arduino入门(javascript操作底层硬件)
- [nodejs]Javascript模板引擎性能对比及几点优化
- 大熊君大话NodeJS之开篇------Why NodeJS(将Javascript进行到底)
- Nodejs为什么选择javascript为载体语言