Suche senden
Hochladen
Node js实践
•
0 gefällt mir
•
2,313 views
M
myzykj
Folgen
Technologie
Melden
Teilen
Melden
Teilen
1 von 63
Empfohlen
NodeJS基礎教學&簡介
NodeJS基礎教學&簡介
GO LL
twMVC#43 YARP
twMVC#43 YARP
twMVC
Intro-to-SeaJS
Intro-to-SeaJS
lifesinger
Maven & mongo & sring
Maven & mongo & sring
Tzu Chi University
KISSY Mechanism
KISSY Mechanism
lifesinger
twMVC#43 C#10 新功能介紹
twMVC#43 C#10 新功能介紹
twMVC
Koa 正在等一個人
Koa 正在等一個人
Fred Chien
Node分享 展烨
Node分享 展烨
tb-vertical-guide
Empfohlen
NodeJS基礎教學&簡介
NodeJS基礎教學&簡介
GO LL
twMVC#43 YARP
twMVC#43 YARP
twMVC
Intro-to-SeaJS
Intro-to-SeaJS
lifesinger
Maven & mongo & sring
Maven & mongo & sring
Tzu Chi University
KISSY Mechanism
KISSY Mechanism
lifesinger
twMVC#43 C#10 新功能介紹
twMVC#43 C#10 新功能介紹
twMVC
Koa 正在等一個人
Koa 正在等一個人
Fred Chien
Node分享 展烨
Node分享 展烨
tb-vertical-guide
twMVC#42 Azure IoT Hub for Smart Factory
twMVC#42 Azure IoT Hub for Smart Factory
twMVC
Docker一期培训
Docker一期培训
青帅 常
快速入坑 Node.js - 0613 SITCON 雲林定期聚
快速入坑 Node.js - 0613 SITCON 雲林定期聚
Lorex L. Yang
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
Will Huang
使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式
Will Huang
RxJS 6 新手入門
RxJS 6 新手入門
Will Huang
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
Will Huang
twMVC#44 讓我們用 k6 來進行壓測吧
twMVC#44 讓我們用 k6 來進行壓測吧
twMVC
QCon - 一次 Clojure Web 编程实战
QCon - 一次 Clojure Web 编程实战
dennis zhuang
课题二:Node.js那些事儿
课题二:Node.js那些事儿
Liu Allen
現代 IT 人一定要知道的 Ansible 自動化組態技巧
現代 IT 人一定要知道的 Ansible 自動化組態技巧
Chu-Siang Lai
深入浅出NodeJS
深入浅出NodeJS
sunzhenghua
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
Chu-Siang Lai
Gulp.js 自動化前端任務流程
Gulp.js 自動化前端任務流程
洧杰 廖
前端自動化工具
前端自動化工具
國昭 張
Docker進階探討
Docker進階探討
國昭 張
lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用
hugo
编辑器设计U editor
编辑器设计U editor
taobao.com
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践
taobao.com
Automate with Ansible basic (3/e)
Automate with Ansible basic (3/e)
Chu-Siang Lai
Building The Framework For A Culture Of Security
Building The Framework For A Culture Of Security
mguenther
Современные проекты и планы города Запорожья в жилищно-коммунальном хозяйстве
Современные проекты и планы города Запорожья в жилищно-коммунальном хозяйстве
Victoria Best
Weitere ähnliche Inhalte
Was ist angesagt?
twMVC#42 Azure IoT Hub for Smart Factory
twMVC#42 Azure IoT Hub for Smart Factory
twMVC
Docker一期培训
Docker一期培训
青帅 常
快速入坑 Node.js - 0613 SITCON 雲林定期聚
快速入坑 Node.js - 0613 SITCON 雲林定期聚
Lorex L. Yang
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
Will Huang
使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式
Will Huang
RxJS 6 新手入門
RxJS 6 新手入門
Will Huang
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
Will Huang
twMVC#44 讓我們用 k6 來進行壓測吧
twMVC#44 讓我們用 k6 來進行壓測吧
twMVC
QCon - 一次 Clojure Web 编程实战
QCon - 一次 Clojure Web 编程实战
dennis zhuang
课题二:Node.js那些事儿
课题二:Node.js那些事儿
Liu Allen
現代 IT 人一定要知道的 Ansible 自動化組態技巧
現代 IT 人一定要知道的 Ansible 自動化組態技巧
Chu-Siang Lai
深入浅出NodeJS
深入浅出NodeJS
sunzhenghua
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
Chu-Siang Lai
Gulp.js 自動化前端任務流程
Gulp.js 自動化前端任務流程
洧杰 廖
前端自動化工具
前端自動化工具
國昭 張
Docker進階探討
Docker進階探討
國昭 張
lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用
hugo
编辑器设计U editor
编辑器设计U editor
taobao.com
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践
taobao.com
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 Factory
Docker一期培训
Docker一期培训
快速入坑 Node.js - 0613 SITCON 雲林定期聚
快速入坑 Node.js - 0613 SITCON 雲林定期聚
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式
RxJS 6 新手入門
RxJS 6 新手入門
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
twMVC#44 讓我們用 k6 來進行壓測吧
twMVC#44 讓我們用 k6 來進行壓測吧
QCon - 一次 Clojure Web 编程实战
QCon - 一次 Clojure Web 编程实战
课题二:Node.js那些事儿
课题二:Node.js那些事儿
現代 IT 人一定要知道的 Ansible 自動化組態技巧
現代 IT 人一定要知道的 Ansible 自動化組態技巧
深入浅出NodeJS
深入浅出NodeJS
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
Gulp.js 自動化前端任務流程
Gulp.js 自動化前端任務流程
前端自動化工具
前端自動化工具
Docker進階探討
Docker進階探討
lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用
编辑器设计U editor
编辑器设计U editor
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践
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 Security
mguenther
Современные проекты и планы города Запорожья в жилищно-коммунальном хозяйстве
Современные проекты и планы города Запорожья в жилищно-коммунальном хозяйстве
Victoria Best
Informe exploracion
Informe exploracion
Lisset Estefania
Maestros afectuosos
Maestros afectuosos
Lisset Estefania
Los Sectores del Aula
Los Sectores del Aula
Trujillo9
4 p s_success
4 p s_success
John Rinehart
Powerpoint management thème ii icemba 2016
Powerpoint management thème ii icemba 2016
sciafrique
The British education system
The British education system
Мария Maria Georgieva TeacherBG
Варикозная болезнь
Варикозная болезнь
Nature's Sunshine Россия
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
Umi Pujiati
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...
OECD Environment
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...
OECD Environment
Education system in the UK
Education system in the UK
julia_martinez
Wedding march(marcha nupcial)
Wedding march(marcha nupcial)
Partitura de Banda
Andere mochten auch
(17)
Building The Framework For A Culture Of Security
Building The Framework For A Culture Of Security
Современные проекты и планы города Запорожья в жилищно-коммунальном хозяйстве
Современные проекты и планы города Запорожья в жилищно-коммунальном хозяйстве
Informe exploracion
Informe exploracion
Maestros afectuosos
Maestros afectuosos
Los Sectores del Aula
Los Sectores del Aula
4 p s_success
4 p s_success
Powerpoint management thème ii icemba 2016
Powerpoint management thème ii icemba 2016
The 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.
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...
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...
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 UK
Wedding march(marcha nupcial)
Wedding march(marcha nupcial)
Ähnlich wie Node js实践
Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練
Joseph Chiang
Node.js长连接开发实践
Node.js长连接开发实践
longhao
Html5
Html5
cazhfe
Berserk js
Berserk js
taobao.com
SeaJS 那些事儿
SeaJS 那些事儿
lifesinger
2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swt
tka
D2_node在淘宝的应用实践_pdf版
D2_node在淘宝的应用实践_pdf版
Jackson Tian
Javascript autoload
Javascript autoload
jay li
千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7
Justin Lin
Real time web实时信息流推送
Real time web实时信息流推送
yongboy
Real-Time Web实时信息流推送
Real-Time Web实时信息流推送
yongboy
摘星
摘星
zenyuhao
Node getting-started
Node getting-started
lylijincheng
Javascript primer plus
Javascript primer plus
Dongxu Yao
D2_Node在淘宝的应用实践
D2_Node在淘宝的应用实践
Jackson Tian
Node.js 進攻桌面開發
Node.js 進攻桌面開發
Fred Chien
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
Jackson Tian
合久必分,分久必合
合久必分,分久必合
Qiangning Hong
Full stack-development with node js
Full stack-development with node js
Xuefeng Zhang
Nodejs & NAE
Nodejs & NAE
q3boy
Ähnlich wie Node js实践
(20)
Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練
Node.js长连接开发实践
Node.js长连接开发实践
Html5
Html5
Berserk js
Berserk js
SeaJS 那些事儿
SeaJS 那些事儿
2012 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版
Javascript autoload
Javascript autoload
千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7
Real time web实时信息流推送
Real time web实时信息流推送
Real-Time Web实时信息流推送
Real-Time Web实时信息流推送
摘星
摘星
Node getting-started
Node getting-started
Javascript primer plus
Javascript primer plus
D2_Node在淘宝的应用实践
D2_Node在淘宝的应用实践
Node.js 進攻桌面開發
Node.js 進攻桌面開發
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
合久必分,分久必合
合久必分,分久必合
Full stack-development with node js
Full stack-development with node js
Nodejs & NAE
Nodejs & NAE
Node js实践
1.
Node.js 实践 拔赤 bachi@taobao.com http://jayli.github.com
2010-10-28
2.
NodeJS 初体验:瘦身,速度,灵活,帅!
3.
•
JavaScript之初 • WebServer之初 • NodeJS • JavaScript的优异表现 • 更进一步:DOM&YUI3
4.
• JavaScript之初 •
WebServer之初 • NodeJS • JavaScript的优异表现 • 更进一步:DOM&YUI3
5.
JavaScript诞生离不开 NetscapeNavigator
6.
ECMAScript一统江湖
JavaScript ActionScript ScriptEase …
7.
我们熟悉的JavaScript
ECMAScript DOM BOM JS库(jQuery,YUI,prototype…)
8.
JS在客户端表现优异,但是…
9.
浏览器弱小的权限限制了JS的表现
10.
• JavaScript之初 • WebServer之初 •
NodeJS • JavaScript的优异表现 • 更进一步:DOM&YUI3
11.
WebServer • Web服务(Apache/IIS/JBoss)
– 处理请求、线程、IO… • 语言引擎(php/Asp/Java) – 面向开发者
12.
WebServer • Web服务(Apache/IIS/JBoss)
– 处理请求、线程、IO… • 语言引擎 (php/Asp/Java/JavaScript) – 面向开发者
13.
http://jaxer.org/ https://developer.mozilla.org/En/JavaScript/Server-
Side_JavaScript/Walkthrough WebServer+SpiderMonkey
14.
浏览器渲染DOM的部分工作分担到服务器
15.
• JavaScript之初 • WebServer之初 •
NodeJS • JavaScript的优异表现 • 更进一步:DOM&YUI3
16.
http://nodejs.org/ http://github.com/ry/node
17.
RyanDahl http://github.com/ry Video: http://www.yuiblog.com/blog/2010/05/20/video-dahl/
18.
Why? Node'sgoalistoprovideaneasyway tobuildscalablenetworkprograms.
-- RyanDahl
19.
NodeJS的实现 •
单线程 (single-thread) • 非阻塞式IO (non-blocking) • V8 • 事件驱动 (event-based)
20.
• 单线程:多个请求占用一个线程 • 多线程:一个请求占用一个线程 (Web服务的)单线程
vs多线程
21.
单线程的性能优势 Nginx(单线程)vsApache(多线程)
22.
/* 阻塞 */ get_a_request();
//从队列中得到一个请求 handle_request(); //处理这个请求 feedback(); //返回处理结果 get_another_request(); //从队列中获得下一个请求 ... /* 非阻塞 */ get_a_request(); //得到一个请求 handle_request(function(){ //处理这个请求 feedback(); //等到处理完成后,返回处理结果 }); get_another_request(); //从队列中获得下一个请求 ... 阻塞 vs非阻塞
23.
非阻塞的性能优势 Nginx(非阻塞)vsApache(阻塞)
24.
“瘦身”带来的性能优势 高并发数的响应时间
25.
“瘦身”带来的性能优势 续
大尺寸文件的响应时间
26.
让人垂涎的长连接 过去/现在/将来
27.
完美的单线程?
28.
单线程的先天不足 • 操控多CPU的短板 –
单线程程序只能在一个CPU上运行 • 可靠性!? – 一个异常影响整个线程
29.
NodeJS的取舍 单线程,可靠性低,性能高 多线程,可靠性高,性能低
30.
JavaScript语言解释器 •
V8(Google)C++ • SpiderMonkey(Mozilla)C++ • Rhino(Mozilla)Java • JavaScriptCore(Apple)C++ • …
31.
NodeJS的选择 http://code.google.com/p/v8/
32.
NodeJS的事件驱动
33.
回调函数,等待“事件”发生
34.
/* NodeJS中的事件驱动 */ var
s = require("tcp").createServer(); s.addListener("connection",function(c){ c.send('hello jayli!'); c.close(); }); s.listen(8080); NodeJS中的事件驱动
35.
关键词 •
SSJS(Server-sideJavaScript) • 单线程 (Single-thread) • 非阻塞 (non-blocking) • 长连接 (persistentconnection) • V8 • 事件驱动 (Event-based)
36.
• JavaScript之初 • WebServer之初 •
NodeJS • JavaScript的优异表现 • 更进一步:DOM&YUI3
37.
NodeJS 优秀的基础架构 给了 JavaScript更多表现空间
38.
NodeJS带来了… •
SSJS没有“夸浏览器”的烦恼 • DOM、BOM的完整支持 • jQuery和YUI3完全成为“中间件” • js程序可以无缝移植到服务器端 • …
39.
NodeJS的运行环境
40.
“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
41.
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 查看版本 运行程序
42.
NodeJS程序/软件包
http://npmjs.org/
43.
和Python、Ruby一样 NodeJS也需要库的支持
44.
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
45.
NodeJSDemos http://github.com/ry/node/wiki
46.
•
JavaScript之初 • WebServer之初 • NodeJS • JavaScript的优异表现 • 更进一步:DOM & YUI3
47.
NodeJS如何渲染HTML http://github.com/tmpvar/jsdom
http://github.com/tautologistics/node- htmlparser
48.
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()); } );
49.
nodejs-dom提供了 • DOM常规操作
• 选择器 • YUINodeAPI
50.
YUI3 •
高粒度的模块 • 沙箱 • 组件异步加载 • core+widgets • 不只为DOM而设计 -- RyanDahl
51.
YUI3forNodeJS http://github.com/yui/nodejs-yui3
52.
DavGlass nodejs-yui3项目发起人
UsingNode.jsandYUI3 http://www.yuiblog.com/blog/2010/09/29/video- glass-node/
53.
启动你的YUI程序 var YUI =
require("yui3").YUI, Y = YUI(); Y.log('hello world'); 运行
54.
熟悉的沙箱 var YUI =
require("yui3").YUI; YUI().use('*',function(Y){ Y.log('hello jayli!'); }); 运行
55.
移植YUI3程序 – 后端渲染UI •
SourceCode – http://jayli.github.com/gallery/node/calendar-server.js • 前端Demo – http://cubee.github.com/src/calendar/demo/calendar.html
56.
移植YUI3程序 – 后端渲染UI&交互
• SourceCode – http://jayli.github.com/gallery/node/pagination-server.js • 前端Demo – http://cubee.github.com/src/pagination/demo/pagination.html
57.
YUI2Calendar
后端渲染UI&交互 http://express.davglass.com/calendar
58.
WhyYUI3? • YUI3的设计使其很方便的移植到NodeJS • YUI3在NodeJS中同样提供完整的core •
一次编写,前/后端运行,cool!
59.
WhataboutKISSY? •
和YUI3极为相似的沙箱 • 核心模块更充分的解耦 • 更粗粒度的组件 • …
60.
KISSYforNodeJS http://github.com/jayli/nodejs-kissy
61.
启动你的KISSY程序 require("yui3").YUI; Var S =
KISSY; S.use("ks-core",function(S){ S.log("hello world"); }). 运行
62.
相关链接 • 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
63.
Q&A