中国信息官CIO精英 前沿视野 经验之谈 职业发展 信息官杂谈 | 产品资讯笔记本 商用电脑 服务器 办公 网络设备 存储设备 软件 显示设备 其他

您当前的位置: 首页 > 资料库 > cio百科 〉前端页面开发:Node.js初学指南

前端页面开发:Node.js初学指南

2012-08-27 17:12:11

    目前,Node.js是在前端页面开发中十分受欢迎的,它是一套用来编写高性能网络服务器的JavaScript工具包,在本文中,将带领各位初学者介绍Node.js的基本知识,要求本文的阅读对象为有一定Javascript和其他开发语言基础的读者。


    什么是Node.js


    Node是一个Javascript运行环境(runtime)。实际上它是对GoogleV8引擎(应用于Google Chrome浏览器)进行了封装。V8引擎执行Javascript的速度非常快,性能非常好。Node对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。例如,在服务器环境中,处理二进制数据通常是必不可少的,但Javascript对此支持不足,因此,V8.Node增加了Buffer类,方便并且高效地 处理二进制数据。因此,Node不仅仅简单的使用了V8,还对其进行了优化,使其在各环境下更加给力。


    发展历史


    2009年2月,Ryan Dahl在博客上宣布准备基于V8创建一个轻量级的Web服务器并提供一套库。


    2009年5月,Ryan Dahl在GitHub上发布了最初版本的部分Node.js包,随后几个月里,有人开始使用Node.js开发应用。


    2009年11月和2010年4月,两届JSConf大会都安排了Node.js的讲座。


    2010年年底,Node.js获得云计算服务商Joyent资助,创始人Ryan Dahl加入Joyent全职负责Node.js的发展。


    2011年7月,Node.js在微软的支持下发布Windows版本。


    初识Node.js


    要开始使用Node.js的,必须先了解Node.js和传统的服务器端脚本环境(如:PHP,Python和Ruby的,等等)之间的差异。


    相信大部分读者都已经对ajax编程十分熟悉了,其中ajax中的a(asynchronous)指的是异步编成,所以在Node.js世界中,一切的方法都是异步执行的,因此比如你需要程序中阅读一个操作系统中的文件,则必须指定一个回调方法,则在读取完这个文件后,则会执行这个回调方法的内容。


    下面,就Node.js跟其他语言来做个小的对比,读者可以可以看出其中的端倪。因为Node.js不是服务器运行环境,它实际上是在服务端运行的javascript,因此在性能上是十分高效的。下面是Node.js编写的一个小程序代码:


    var i, a, b, c, max;


    max = 1000000000;


    var d = Date.now();


    for (i = 0; i < max; i++) {


    a = 1234 + 5678 + i;


    b = 1234 * 5678 + i;


    c = 1234 / 2 + i;


    }


    而相同的PHP代码如下:


    $a = null;


    $b = null;


    $c = null;


    $i = null;


    $max = 1000000000;


    $start = microtime(true);


    for ($i = 0; $i < $max; $i++) {


    $a = 1234 + 5678 + $i;


    $b = 1234 * 5678 + $i;


    $c = 1234 / 2 + $i;


    }


    var_dump(microtime(true) - $start);


    下面的表是两者对比的性能列表,以微秒为单位,如下:


    在命令行执行这两个应用程序,所以没有服务器端的延迟执行。对每个应用分别测试10次,取平均值,结果。如果循环的次数比较少,则php的速度快点,但这种优势,随着迭代次数的增加而减少,会发现都比nodejs慢了!

(责编:sunnie)

投稿邮箱:cio114@foxmail.com