KEMBAR78
Introduction to Nodejs and Isomorphic javascript | PDF
Node JS and
Isomorphic Javascript
Jasper
Outline
• Asynchronous Programming	

• Concept of Node JS	

• Revolution of Web Framework	

• Isomorphic Javascript Web Framework
Asynchronous
Programming
Task1 I/O: waiting
Task1: Data Processing
Task2: Data Processing
Task2: I/O: waiting
Asynchronous
Programming
Task1 I/O: waiting
Task 1: Data Processing
Task 2: Data Processing
Task 1: Callback
Asynchronous
Programming
• Compared with multithreading:	

• Cons:	

• Service is blocked when
encountering heavy CPU computing.	

• Pros:	

• Don’t need to maintain thread state	

• Don’t suffer from context switching
Asynchronous
Programming
• HTTP request processed by web server.	

!
!
!
!
!
route a request
query a DB
process results
write a log
format response
Asynchronous
Programming
• Popular project based on asynchronous
programming	

• Node JS	

• Twisted	

• Tornado
Node JS
• Server-side JS runtime based onV8	

• Single thread.	

• Asynchronous programming - libuv
Node JS
Event Loop
Event Queue Thread Pool
Network
File System
...
CallbackEvents
Node JS
• As a web server on multi-core host	

• Run a node JS web server process per
core	

• A load balancer ahead of them.
Traditional Web
Framework
• ModelView Controller(MVC)	

• Rails/Django/CodeIngiter 	

!
!
!
!
Controller Model
View
Browser Request Execute Data
Data Returned
Data ReturnedResponseView
Browser Response
Modern Single Page
Application
• Front-end MVC framework with pure API
server.	

!
!
!
!
Web App
Mobile App
API
• Pure Javascript MVC Framework	

• Angular	

• Ember	

• Backbone	

• ...
Modern Single Page
Application
• Pros:	

• Without refresh the page when browsing the page	

• Separate pure data from business logic	

• Cons:	

• SEO	

• Performance depend on users’ end devices	

• Twitter 	

• Duplicate logic(URL routing, validation, ...etc.)
Isomorphic Javascript
• A concept of JS web framework that shares
Javascript run on both client side and
server side.	

• Reuse all codes	

• Flexible for developer	

• Bootstrap initial page via server
rendering.	

• Font-end rendering/Back-end rendering
Isomorphic Javascript
• Web framework with Isomorphic conecpts	

• Meteor - Meteor.com	

• Derby	

• Rendr - Airbnb	

• Even use React + Flux
End

Introduction to Nodejs and Isomorphic javascript