时间:14-05-28 栏目:Javascript, win8应用 作者:zongyan86 评论:0 点击: 2,966 次
本文标签: javascript node.js web开发
身为一个javascript的热爱着,不去玩下服务端的javascript的node.js那代表着你已经out了。是的,javascript的语法,并不是多么的牛B,但是,它的灵活性越让他经久不衰。而node.js的出现,让javascript成为今年N火的语言。大伙也来凑个热闹吧。不管你php用得多么炉火纯青,java用得多么出身如画,.net用得多么天衣无缝,身为一个有追求的开发者,至少了解还是很有必要的。web开发分享,接下来就写下自身学习的一个过程,希望大家共勉。
简介:
NodeJs是一个服务端运行javascript的平台,跟asp.net,java,python,ruby,php一样,把javascript的定位从前端给移到了后端, 以Google V8为javascript引擎,所以javascript执行效率相当高,跟一般的web后台开发语言不一样,NodeJS的特点是异步,无阻塞的运行程序,所以开发NodeJS程序时,需要把所有的业务逻辑拆分成一个一个的模块,以回调的方式来执行,也许这是它的一个不足,但是现在已经有相应的扩展模块简化异步模块的开发。
功能:1.命令行工具设计。2.web系统设计。3.客户端javascript编译器。4.web服务器。
与其他服务端语言的差别:1.Node.js本身包含一个http服务器,无需在借用什么apache,iis什么的。2.node.js是异步IO,事件驱动的。这点太棒了。3.Node.js是单线程执行的。4.RESTful API 5.采用module方式。
这边来说说异步IO。首先我们先看看操作系统的线程与阻塞。
什么是阻塞呢,线程在执行中遇到磁盘读写或者数据库通讯,网络通讯这种耗时比较多的时候,操作系统将会剥夺此线程的CPU资源,并暂停此线程,转而去执行别的线程,此线程调度方式称为阻塞。当 I/O操作完成之后,操作系统又恢复此线程,让其继续执行,这种I/O模式通常称为同步I/O或者阻塞式I/O。
异步式IO或者非阻塞式I/O则针对所有操作采取不阻塞的方式,当线程遇到IO操作的时候,不会以阻塞的方式等待IO操作完成或者数据的返回,而是将IO操作发送给操作系统,然后接着执行下一个操作,当操作系统执行完IO操作之后,将是事件的方式通知执行IO的线程,线程会在特定的时候执行这个事件。这一切的前提条件就是,系统需要一个事件循环,以不断的去查询有没有未处理的事件,然后给预处理。
阻塞方式下,一个线程只能处理一个任务,要想提高系统的吞吐量,必须使用多线程 ;而非阻塞情况下,一个线程永远在执行计算,CPU使用率几乎100%,IO以事件的方式通知。在阻塞模式下,多线程能够提高系统吞吐量,因为一个线程在阻塞的时候,还有另一个线程在工作,多线程 不会让CPU资源在线程阻塞的时候浪费。而在非阻塞模式下,线程不会被IO阻塞,CPU资源也不会浪费。多线程只是在多核的时候利用更多的核,而nodejs的单线程也能带来这个好处。所以这就是nodejs采取单线程,非阻塞的事件编程模式。
做个helloword的实例:
var http = require('http'); server = http.createServer(function (req, res) { res.writeHeader(200, {"Content-Type": "text/plain"}); res.end("Hello World\n"); }); server.listen(8000); console.log("httpd start @8000");
最后,附上node.js官网:http://www.nodejs.org/ 百度node.js词条:http://baike.baidu.com/view/3974030.htm?fr=aladdin#5
Node.js系列目录
声明: 本文由( zongyan86 )原创编译,转载请保留链接: Node.js系列-Node.js简介