SlideShare ist ein Scribd-Unternehmen logo
1 von 63
Node.js 实践
拔赤 bachi@taobao.com
 http://jayli.github.com
       2010-10-28
NodeJS 初体验:瘦身,速度,灵活,帅!
•   JavaScript之初
•   WebServer之初
•   NodeJS
•   JavaScript的优异表现
•   更进一步:DOM&YUI3
• JavaScript之初
•   WebServer之初
•   NodeJS
•   JavaScript的优异表现
•   更进一步:DOM&YUI3
JavaScript诞生离不开
NetscapeNavigator
ECMAScript一统江湖

     JavaScript
    ActionScript
     ScriptEase
         …
我们熟悉的JavaScript

        ECMAScript


          DOM


          BOM


JS库(jQuery,YUI,prototype…)
JS在客户端表现优异,但是…
浏览器弱小的权限限制了JS的表现
• JavaScript之初
• WebServer之初
• NodeJS
• JavaScript的优异表现
• 更进一步:DOM&YUI3
WebServer

• Web服务(Apache/IIS/JBoss)
  – 处理请求、线程、IO…


• 语言引擎(php/Asp/Java)
  – 面向开发者
WebServer

• Web服务(Apache/IIS/JBoss)
  – 处理请求、线程、IO…


• 语言引擎
 (php/Asp/Java/JavaScript)
  – 面向开发者
http://jaxer.org/
https://developer.mozilla.org/En/JavaScript/Server-
           Side_JavaScript/Walkthrough


WebServer+SpiderMonkey
浏览器渲染DOM的部分工作分担到服务器
• JavaScript之初
• WebServer之初
• NodeJS
• JavaScript的优异表现
• 更进一步:DOM&YUI3
http://nodejs.org/




http://github.com/ry/node
RyanDahl
  http://github.com/ry




Video:
http://www.yuiblog.com/blog/2010/05/20/video-dahl/
Why?
Node'sgoalistoprovideaneasyway
tobuildscalablenetworkprograms.

                         -- RyanDahl
NodeJS的实现

•   单线程    (single-thread)
•   非阻塞式IO (non-blocking)
•   V8
•   事件驱动   (event-based)
• 单线程:多个请求占用一个线程
• 多线程:一个请求占用一个线程


(Web服务的)单线程 vs多线程
单线程的性能优势




Nginx(单线程)vsApache(多线程)
/* 阻塞 */
get_a_request(); //从队列中得到一个请求
handle_request(); //处理这个请求
feedback(); //返回处理结果
get_another_request(); //从队列中获得下一个请求
...

/* 非阻塞 */
get_a_request(); //得到一个请求
handle_request(function(){ //处理这个请求
     feedback(); //等到处理完成后,返回处理结果
});
get_another_request(); //从队列中获得下一个请求
...

           阻塞 vs非阻塞
非阻塞的性能优势




Nginx(非阻塞)vsApache(阻塞)
“瘦身”带来的性能优势




  高并发数的响应时间
“瘦身”带来的性能优势 续




   大尺寸文件的响应时间
让人垂涎的长连接




 过去/现在/将来
完美的单线程?
单线程的先天不足

• 操控多CPU的短板
 – 单线程程序只能在一个CPU上运行


• 可靠性!?
 – 一个异常影响整个线程
NodeJS的取舍

单线程,可靠性低,性能高
 多线程,可靠性高,性能低
JavaScript语言解释器
•   V8(Google)C++
•   SpiderMonkey(Mozilla)C++
•   Rhino(Mozilla)Java
•   JavaScriptCore(Apple)C++
•   …
NodeJS的选择




http://code.google.com/p/v8/
NodeJS的事件驱动
回调函数,等待“事件”发生
/* NodeJS中的事件驱动 */

var s = require("tcp").createServer();
s.addListener("connection",function(c){
     c.send('hello jayli!');
     c.close();
});
s.listen(8080);


         NodeJS中的事件驱动
关键词
•   SSJS(Server-sideJavaScript)
•   单线程 (Single-thread)
•   非阻塞 (non-blocking)
•   长连接 (persistentconnection)
•   V8
•   事件驱动 (Event-based)
• JavaScript之初
• WebServer之初
• NodeJS
• JavaScript的优异表现
• 更进一步:DOM&YUI3
NodeJS 优秀的基础架构
给了 JavaScript更多表现空间
NodeJS带来了…
•   SSJS没有“夸浏览器”的烦恼
•   DOM、BOM的完整支持
•   jQuery和YUI3完全成为“中间件”
•   js程序可以无缝移植到服务器端
•   …
NodeJS的运行环境
“Helloworld”
/* example.js*/

var http = require('http');
http.createServer(function (req, res) {
     res.writeHead(200,
          {'Content-Type': 'text/plain'});
     res.end('Hello Worldn');
}).listen(8124, "127.0.0.1");


 命令行运行
$ node example.js
NodeJS的安装
wget http://nodejs.org/dist/node-v0.3.0.tar.gz
tar xzvf node-v0.3.0.tar.gz
cd node-v0.3.0
./configure
make
make install


                              查看版本

                                   运行程序
NodeJS程序/软件包




   http://npmjs.org/
和Python、Ruby一样
NodeJS也需要库的支持
Ryan对http的初级封装
//引入库
var fu = require("./fu");
//打开监听
fu.listen(PORT,HOST);
//响应对path_to_file的请求
fu.get('path_to_file',callback);
//请求静态文件
fu.staticHandler('filename');
//返回404
notFound(req,res);

 http://github.com/ry/node_chat/blob/master/fu.js
NodeJSDemos




http://github.com/ry/node/wiki
•   JavaScript之初
•   WebServer之初
•   NodeJS
•   JavaScript的优异表现
• 更进一步:DOM & YUI3
NodeJS如何渲染HTML




http://github.com/tmpvar/jsdom   http://github.com/tautologistics/node-
                                                htmlparser
NodeJS运行 jQuery
var jsdom = require("jsdom"),
    window = jsdom.jsdom().createWindow();

jsdom.jQueryify(window, "http://cdn/jquery.js" ,
      function() {
          window.jQuery('body').append(<div
               class='testing'>Hello World, It
               works</div>");
          console.log(window.jQuery(".testing")
               .text());
     }
);
nodejs-dom提供了

 • DOM常规操作
 • 选择器
 • YUINodeAPI
YUI3
•   高粒度的模块
•   沙箱
•   组件异步加载
•   core+widgets
•   不只为DOM而设计
               -- RyanDahl
YUI3forNodeJS




http://github.com/yui/nodejs-yui3
DavGlass
nodejs-yui3项目发起人


      UsingNode.jsandYUI3
 http://www.yuiblog.com/blog/2010/09/29/video-
                  glass-node/
启动你的YUI程序
var YUI = require("yui3").YUI,
    Y = YUI();
Y.log('hello world');



   运行
熟悉的沙箱
var YUI = require("yui3").YUI;
YUI().use('*',function(Y){
     Y.log('hello jayli!');
});


 运行
移植YUI3程序 – 后端渲染UI




• SourceCode
  – http://jayli.github.com/gallery/node/calendar-server.js

• 前端Demo
  – http://cubee.github.com/src/calendar/demo/calendar.html
移植YUI3程序 – 后端渲染UI&交互



 • SourceCode
   – http://jayli.github.com/gallery/node/pagination-server.js

 • 前端Demo
   – http://cubee.github.com/src/pagination/demo/pagination.html
YUI2Calendar
   后端渲染UI&交互




http://express.davglass.com/calendar
WhyYUI3?
• YUI3的设计使其很方便的移植到NodeJS
• YUI3在NodeJS中同样提供完整的core
• 一次编写,前/后端运行,cool!
WhataboutKISSY?
•   和YUI3极为相似的沙箱
•   核心模块更充分的解耦
•   更粗粒度的组件
•   …
KISSYforNodeJS




http://github.com/jayli/nodejs-kissy
启动你的KISSY程序
require("yui3").YUI;
Var S = KISSY;
S.use("ks-core",function(S){
     S.log("hello world");
}).


   运行
相关链接
• NodeJS
  – http://nodejs.org
• YUI3
  – http://developer.yahoo.com/yui/3/
• Nodejs-yui
  – http://github.com/yui/nodejs-yui3
• Npm
  – http://npmjs.org
• Nodejs-kissy
  – http://github.com/jayli/nodejs-kiss
Q&A

Weitere ähnliche Inhalte

Was ist angesagt?

twMVC#42 Azure IoT Hub for Smart Factory
twMVC#42 Azure IoT Hub for Smart FactorytwMVC#42 Azure IoT Hub for Smart Factory
twMVC#42 Azure IoT Hub for Smart FactorytwMVC
 
Docker一期培训
Docker一期培训Docker一期培训
Docker一期培训青帅 常
 
快速入坑 Node.js - 0613 SITCON 雲林定期聚
快速入坑 Node.js - 0613 SITCON 雲林定期聚快速入坑 Node.js - 0613 SITCON 雲林定期聚
快速入坑 Node.js - 0613 SITCON 雲林定期聚Lorex L. Yang
 
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例Will Huang
 
使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式Will Huang
 
RxJS 6 新手入門
RxJS 6 新手入門RxJS 6 新手入門
RxJS 6 新手入門Will Huang
 
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)Will Huang
 
twMVC#44 讓我們用 k6 來進行壓測吧
twMVC#44 讓我們用 k6 來進行壓測吧twMVC#44 讓我們用 k6 來進行壓測吧
twMVC#44 讓我們用 k6 來進行壓測吧twMVC
 
QCon - 一次 Clojure Web 编程实战
QCon - 一次 Clojure Web 编程实战QCon - 一次 Clojure Web 编程实战
QCon - 一次 Clojure Web 编程实战dennis zhuang
 
课题二:Node.js那些事儿
课题二:Node.js那些事儿课题二:Node.js那些事儿
课题二:Node.js那些事儿Liu Allen
 
現代 IT 人一定要知道的 Ansible 自動化組態技巧
現代 IT 人一定要知道的 Ansible 自動化組態技巧現代 IT 人一定要知道的 Ansible 自動化組態技巧
現代 IT 人一定要知道的 Ansible 自動化組態技巧Chu-Siang Lai
 
深入浅出NodeJS
深入浅出NodeJS深入浅出NodeJS
深入浅出NodeJSsunzhenghua
 
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & WindowsChu-Siang Lai
 
Gulp.js 自動化前端任務流程
Gulp.js 自動化前端任務流程Gulp.js 自動化前端任務流程
Gulp.js 自動化前端任務流程洧杰 廖
 
前端自動化工具
前端自動化工具前端自動化工具
前端自動化工具國昭 張
 
Docker進階探討
Docker進階探討Docker進階探討
Docker進階探討國昭 張
 
lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用hugo
 
编辑器设计U editor
编辑器设计U editor编辑器设计U editor
编辑器设计U editortaobao.com
 
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践Node.js在淘宝的应用实践
Node.js在淘宝的应用实践taobao.com
 
Automate with Ansible basic (3/e)
Automate with Ansible basic (3/e)Automate with Ansible basic (3/e)
Automate with Ansible basic (3/e)Chu-Siang Lai
 

Was ist angesagt? (20)

twMVC#42 Azure IoT Hub for Smart Factory
twMVC#42 Azure IoT Hub for Smart FactorytwMVC#42 Azure IoT Hub for Smart Factory
twMVC#42 Azure IoT Hub for Smart Factory
 
Docker一期培训
Docker一期培训Docker一期培训
Docker一期培训
 
快速入坑 Node.js - 0613 SITCON 雲林定期聚
快速入坑 Node.js - 0613 SITCON 雲林定期聚快速入坑 Node.js - 0613 SITCON 雲林定期聚
快速入坑 Node.js - 0613 SITCON 雲林定期聚
 
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
 
使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式
 
RxJS 6 新手入門
RxJS 6 新手入門RxJS 6 新手入門
RxJS 6 新手入門
 
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
 
twMVC#44 讓我們用 k6 來進行壓測吧
twMVC#44 讓我們用 k6 來進行壓測吧twMVC#44 讓我們用 k6 來進行壓測吧
twMVC#44 讓我們用 k6 來進行壓測吧
 
QCon - 一次 Clojure Web 编程实战
QCon - 一次 Clojure Web 编程实战QCon - 一次 Clojure Web 编程实战
QCon - 一次 Clojure Web 编程实战
 
课题二:Node.js那些事儿
课题二:Node.js那些事儿课题二:Node.js那些事儿
课题二:Node.js那些事儿
 
現代 IT 人一定要知道的 Ansible 自動化組態技巧
現代 IT 人一定要知道的 Ansible 自動化組態技巧現代 IT 人一定要知道的 Ansible 自動化組態技巧
現代 IT 人一定要知道的 Ansible 自動化組態技巧
 
深入浅出NodeJS
深入浅出NodeJS深入浅出NodeJS
深入浅出NodeJS
 
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
 
Gulp.js 自動化前端任務流程
Gulp.js 自動化前端任務流程Gulp.js 自動化前端任務流程
Gulp.js 自動化前端任務流程
 
前端自動化工具
前端自動化工具前端自動化工具
前端自動化工具
 
Docker進階探討
Docker進階探討Docker進階探討
Docker進階探討
 
lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用
 
编辑器设计U editor
编辑器设计U editor编辑器设计U editor
编辑器设计U editor
 
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践Node.js在淘宝的应用实践
Node.js在淘宝的应用实践
 
Automate with Ansible basic (3/e)
Automate with Ansible basic (3/e)Automate with Ansible basic (3/e)
Automate with Ansible basic (3/e)
 

Andere mochten auch

Building The Framework For A Culture Of Security
Building The Framework For A Culture Of SecurityBuilding The Framework For A Culture Of Security
Building The Framework For A Culture Of Securitymguenther
 
Современные проекты и планы города Запорожья в жилищно-коммунальном хозяйстве
Современные проекты и планы города Запорожья в жилищно-коммунальном хозяйствеСовременные проекты и планы города Запорожья в жилищно-коммунальном хозяйстве
Современные проекты и планы города Запорожья в жилищно-коммунальном хозяйствеVictoria Best
 
Los Sectores del Aula
Los Sectores del AulaLos Sectores del Aula
Los Sectores del AulaTrujillo9
 
Powerpoint management thème ii icemba 2016
Powerpoint management thème ii icemba  2016Powerpoint management thème ii icemba  2016
Powerpoint management thème ii icemba 2016sciafrique
 
Mapa conceptual de el docente y los programas escolares.
Mapa conceptual de el docente y los programas escolares.Mapa conceptual de el docente y los programas escolares.
Mapa conceptual de el docente y los programas escolares.Alma Carrillo
 
1. kerjasama internasional
1. kerjasama internasional 1. kerjasama internasional
1. kerjasama internasional Umi Pujiati
 
MAPS experiences with long-term low greenhouse gas emission development strat...
MAPS experiences with long-term low greenhouse gas emission development strat...MAPS experiences with long-term low greenhouse gas emission development strat...
MAPS experiences with long-term low greenhouse gas emission development strat...OECD Environment
 
Long-term low greenhouse gas emission development strategies, Peter Janoska C...
Long-term low greenhouse gas emission development strategies, Peter Janoska C...Long-term low greenhouse gas emission development strategies, Peter Janoska C...
Long-term low greenhouse gas emission development strategies, Peter Janoska C...OECD Environment
 
2016 ENV Ministerial - Michelle Harding - OECD - Taxation on gasoline - Air p...
2016 ENV Ministerial - Michelle Harding - OECD - Taxation on gasoline - Air p...2016 ENV Ministerial - Michelle Harding - OECD - Taxation on gasoline - Air p...
2016 ENV Ministerial - Michelle Harding - OECD - Taxation on gasoline - Air p...OECD Environment
 
Transparency of mitigation - Sweden, Erik Adriansson CCXG GF September 2016 B...
Transparency of mitigation - Sweden, Erik Adriansson CCXG GF September 2016 B...Transparency of mitigation - Sweden, Erik Adriansson CCXG GF September 2016 B...
Transparency of mitigation - Sweden, Erik Adriansson CCXG GF September 2016 B...OECD Environment
 
Education system in the UK
Education system in the UKEducation system in the UK
Education system in the UKjulia_martinez
 

Andere mochten auch (17)

Building The Framework For A Culture Of Security
Building The Framework For A Culture Of SecurityBuilding The Framework For A Culture Of Security
Building The Framework For A Culture Of Security
 
Современные проекты и планы города Запорожья в жилищно-коммунальном хозяйстве
Современные проекты и планы города Запорожья в жилищно-коммунальном хозяйствеСовременные проекты и планы города Запорожья в жилищно-коммунальном хозяйстве
Современные проекты и планы города Запорожья в жилищно-коммунальном хозяйстве
 
Informe exploracion
Informe exploracionInforme exploracion
Informe exploracion
 
Maestros afectuosos
Maestros afectuososMaestros afectuosos
Maestros afectuosos
 
Los Sectores del Aula
Los Sectores del AulaLos Sectores del Aula
Los Sectores del Aula
 
4 p s_success
4 p s_success4 p s_success
4 p s_success
 
Powerpoint management thème ii icemba 2016
Powerpoint management thème ii icemba  2016Powerpoint management thème ii icemba  2016
Powerpoint management thème ii icemba 2016
 
The British education system
The British education systemThe British education system
The British education system
 
Варикозная болезнь
Варикозная болезньВарикозная болезнь
Варикозная болезнь
 
Mapa conceptual de el docente y los programas escolares.
Mapa conceptual de el docente y los programas escolares.Mapa conceptual de el docente y los programas escolares.
Mapa conceptual de el docente y los programas escolares.
 
1. kerjasama internasional
1. kerjasama internasional 1. kerjasama internasional
1. kerjasama internasional
 
MAPS experiences with long-term low greenhouse gas emission development strat...
MAPS experiences with long-term low greenhouse gas emission development strat...MAPS experiences with long-term low greenhouse gas emission development strat...
MAPS experiences with long-term low greenhouse gas emission development strat...
 
Long-term low greenhouse gas emission development strategies, Peter Janoska C...
Long-term low greenhouse gas emission development strategies, Peter Janoska C...Long-term low greenhouse gas emission development strategies, Peter Janoska C...
Long-term low greenhouse gas emission development strategies, Peter Janoska C...
 
2016 ENV Ministerial - Michelle Harding - OECD - Taxation on gasoline - Air p...
2016 ENV Ministerial - Michelle Harding - OECD - Taxation on gasoline - Air p...2016 ENV Ministerial - Michelle Harding - OECD - Taxation on gasoline - Air p...
2016 ENV Ministerial - Michelle Harding - OECD - Taxation on gasoline - Air p...
 
Transparency of mitigation - Sweden, Erik Adriansson CCXG GF September 2016 B...
Transparency of mitigation - Sweden, Erik Adriansson CCXG GF September 2016 B...Transparency of mitigation - Sweden, Erik Adriansson CCXG GF September 2016 B...
Transparency of mitigation - Sweden, Erik Adriansson CCXG GF September 2016 B...
 
Education system in the UK
Education system in the UKEducation system in the UK
Education system in the UK
 
Wedding march(marcha nupcial)
Wedding march(marcha nupcial)Wedding march(marcha nupcial)
Wedding march(marcha nupcial)
 

Ähnlich wie Node js实践

Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練Joseph Chiang
 
Node.js长连接开发实践
Node.js长连接开发实践Node.js长连接开发实践
Node.js长连接开发实践longhao
 
SeaJS 那些事儿
SeaJS 那些事儿SeaJS 那些事儿
SeaJS 那些事儿lifesinger
 
2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swt2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swttka
 
D2_node在淘宝的应用实践_pdf版
D2_node在淘宝的应用实践_pdf版D2_node在淘宝的应用实践_pdf版
D2_node在淘宝的应用实践_pdf版Jackson Tian
 
Javascript autoload
Javascript autoloadJavascript autoload
Javascript autoloadjay li
 
千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7Justin Lin
 
Real time web实时信息流推送
Real time web实时信息流推送Real time web实时信息流推送
Real time web实时信息流推送yongboy
 
Real-Time Web实时信息流推送
Real-Time Web实时信息流推送Real-Time Web实时信息流推送
Real-Time Web实时信息流推送yongboy
 
Node getting-started
Node getting-startedNode getting-started
Node getting-startedlylijincheng
 
Javascript primer plus
Javascript primer plusJavascript primer plus
Javascript primer plusDongxu Yao
 
D2_Node在淘宝的应用实践
D2_Node在淘宝的应用实践D2_Node在淘宝的应用实践
D2_Node在淘宝的应用实践Jackson Tian
 
Node.js 進攻桌面開發
Node.js 進攻桌面開發Node.js 進攻桌面開發
Node.js 進攻桌面開發Fred Chien
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型Jackson Tian
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合Qiangning Hong
 
Full stack-development with node js
Full stack-development with node jsFull stack-development with node js
Full stack-development with node jsXuefeng Zhang
 
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAEq3boy
 

Ähnlich wie Node js实践 (20)

Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練
 
Node.js长连接开发实践
Node.js长连接开发实践Node.js长连接开发实践
Node.js长连接开发实践
 
Html5
Html5Html5
Html5
 
Berserk js
Berserk jsBerserk js
Berserk js
 
SeaJS 那些事儿
SeaJS 那些事儿SeaJS 那些事儿
SeaJS 那些事儿
 
2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swt2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swt
 
D2_node在淘宝的应用实践_pdf版
D2_node在淘宝的应用实践_pdf版D2_node在淘宝的应用实践_pdf版
D2_node在淘宝的应用实践_pdf版
 
Javascript autoload
Javascript autoloadJavascript autoload
Javascript autoload
 
千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7
 
Real time web实时信息流推送
Real time web实时信息流推送Real time web实时信息流推送
Real time web实时信息流推送
 
Real-Time Web实时信息流推送
Real-Time Web实时信息流推送Real-Time Web实时信息流推送
Real-Time Web实时信息流推送
 
摘星
摘星摘星
摘星
 
Node getting-started
Node getting-startedNode getting-started
Node getting-started
 
Javascript primer plus
Javascript primer plusJavascript primer plus
Javascript primer plus
 
D2_Node在淘宝的应用实践
D2_Node在淘宝的应用实践D2_Node在淘宝的应用实践
D2_Node在淘宝的应用实践
 
Node.js 進攻桌面開發
Node.js 進攻桌面開發Node.js 進攻桌面開發
Node.js 進攻桌面開發
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合
 
Full stack-development with node js
Full stack-development with node jsFull stack-development with node js
Full stack-development with node js
 
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAE
 

Node js实践