深入浅出Node.js1.3 Node给JavaScript带来的意义_深入浅出Node.js1.3 Node给JavaScript带来的意义试读-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > 深入浅出Node.js > 1.3 Node给JavaScript带来的意义

深入浅出Node.js——1.3 Node给JavaScript带来的意义

V8给Chrome浏览器带来了一个强劲的心脏,使得它在浏览器大战中脱颖而出,也使得Ryan Dahl在语言评估中为选择JavaScript增加了一个极大的权重值。这里我们要谈谈Node给JavaScript带来的一个新局面。鉴于Node之前那些不给力的后端JavaScript实现,在性能和编程模型等方面没能达到与其他语言一较高下的程度,这里先撇开不谈,先谈谈Node与浏览器的对比。 Chrome浏览器和Node的组件构成如图1-1所示。我们知道浏览器中除了V8作为JavaScript引擎外,还有一个WebKit布局引擎。 HTML5在发展过程中定义了更多更丰富的API。在实现上,浏览器提供了越来越多的功能暴露给JavaScript和HTML标签。这个愿景美好,但对于前端浏览器的发展现状而言,HTML5标准统一的过程是相对缓慢的。JavaScript作为一门图灵完备的语言,长久以来却限制在浏览器的沙箱中运行,它的能力取决于浏览器中间层提供的支持有多少。 图1-1 Chrome浏览器和Node的组件构成 除了HTML、WebKit和显卡这些UI相关技术没有支持外,Node的结构与Chrome十分相似。它们都是基于事件驱动的异步架构,浏览器通过事件驱动来服务界面上的交互,Node通过事件驱动来服务I/O,这个细节将在第3章中详述。在Node中,JavaScript可以随心所欲地访问本地文件,可以搭建WebSocket服务器端,可以连接数据库,可以如Web Workers一样玩转多进程。如今,JavaScript可以运行在不同的地方,不再继续限制在浏览器中与CSS样式表、DOM树打交道。如果HTTP协议栈是水平面,Node就是浏览器在协议栈另一边的倒影。Node不处理UI,但用与浏览器相同的机制和原理运行。Node打破了过去JavaScript只能在浏览器中运行的局面。前后端编程环境统一,可以大大降低前后端转换所需要的上下文交换代价。 对于前端工程师而言,自己所熟悉的JavaScript如今竟然可以在另一个地方放出异彩,不谈其他原因,仅仅因为好奇,就值得去关注和探究它。 随着Node的出现,关于JavaScript的想象总是无限的。目前,社区已经出现node-webkit这样的项目,这个项目在2012年的沪JS会议上首次介绍给了公众。如同上文提及的关于浏览器的优势和限制,在node-webkit项目中,它将Node中的事件循环和WebKit的事件循环融合在一起,既可以通过它享受HTML、CSS带来的UI构建,也能通过它访问本地资源,将两者的优势整合到一起。桌面应用程序的开发可以完全通过HTML、CSS、JavaScript完成。

展开全文

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

《深入浅出Node.js》其他试读目录

• 1.1 Node的诞生历程
• 1.2 Node的命名与起源
• 1.3 Node给JavaScript带来的意义 [当前]
• 1.4 Node的特点
• 1.5 Node的应用场景
• 1.6 Node的使用者
• 1.7 参考资源
• 2.1 CommonJS规范
• 2.2 Node的模块实现
• 2.3 核心模块
• 2.4 C/C++扩展模块
• 2.5 模块调用栈
• 2.6 包与NPM
• 2.7 前后端共用模块
• 2.8 总结
• 2.9 参考资源