SlideShare a Scribd company logo
Evolution of JavaScript
“ Java is to JavaScript as Car is to Carpet”
- Chris Heilmann
the early days of JavaScript
• a dynamic scripting language
• kind of quirky but lots of features.
• introduced by Netscape to have a language that can run client side
code in a browser.
• has absolutely nothing to do with the Java language.
• they share similar syntax both derived from the "C" style of
languages.
• Microsoft entered with their "compatible implementation" called
"Jscript"
AJAX - Asynchronous JavaScript and XML
• used to send data from client to server you would post a
form or click a link with data. browser would then load a
whole new page. effective but real fast and not real efficient.
• can use XML with AJAX but it's not required, and today very
few do, most developers today just use JSON.
AJAX - Asynchronous JavaScript and XML
• along came XMLHttpRequest, this allowed JavaScript to
send and receive data in the background.
• using DHMTL along with AJAX allowed the script to only
update portions of a page to reflect the new data.
• it took years for XMLHttpRequest to standardize across
browsers to the point where it was widely used.
• first apps using cross browser Ajax Gmail (2004) and Google
Maps (2005)
JSON - JavaScript Object Notation
• a text-based format for data exchange
• mechanism for encoding data as text
• similar to XML in a way that is readable by humans and parsable by
computers
• more compact and lighter weight than XML
• has fewer features does not support things like meta-data or
attributes.
• yahoo began to offer Web Services in JSON 2005
• Google started offering JSON feeds of GData web protocol in 2006
JQuery
• a framework
• a DOM manipulation library
• circa 2006, an open source JavaScript library for client side
development
• allows the developer to find and manipulate elements of document
far easier than anything before
• smooth's over browser incompatibilities so that browser can be
treated mostly the same.
• simplifies HTML document traversing
JQuery
• JQuery's tag line is "Write Less Do More"
• Suddenly client-side code was small and concise and working in
almost ever browser
• ability to reduce client-side code
• now worth the effort to start moving functionality from the server to
the client
JQuery
• One of the most successful and widely adopted libraries around
• Estimated by Wikipedia to be used by 65% of the 10,000 most visited
web sites.
change the background color of a body tag
JavaScript
Function changeBackground(color){
Document.body.style.background = color;
}
Onload="changeBackground('red');
JQuery
$('body').css('background','#ccc');
Post JQuery - frameworks
• JQuery and AJAX let web developers do more with JavaScript, and
generated a lot of new frameworks
• CoffeScript: a programming language that transcompiles to JavaScript
• large following in Ruby community
• CoffeeScript support is included in Ruby on Rails
Post JQuery - frameworks
• Frameworks: offers developers client-side MVC, templating and
databinding on the client side.
• Knockout.js
• AngularJS
• JavaScriptMVC
• Backbone.js
• Ember.js
why use client-side MVC frameworks?
• It's all about balance.
• finding the right balance between server and client
• good candidates for use in SPA (single page applications)
templating
• AngularJS
• HTML binding expression baked-in
• Ember
• uses Handlebars template engine, extension of Mustache.js
• Backbone
• integrated with third party template default choice is Underscore
Angular templating example
In Angular when we reference template I would mean the view of the HTML
enriched by the various Angular directives and the markup used for data
binding (the expression in double curly braces {{}}).
We can go a step further and not only regard a whole HTML document as a
template but also any HTML fragment, often referred to as partials.
templating example
an Angular template example to display the full name of every person in a
simple list
<body ng-app="myApp">
<div ng-controller="PersonCtrl">
<div ng-repeat="person in persons">
{{person.last}}, {{person.first}} {{person.middle}}
</div>
</div>
</body>
popular community facts
Post JQuery - to the server
• Node.js
• a different animal entirely.
• server side application using JavaScript
• used to create lightweight HTTP server applications such as Web
services that do support client-side code.
a little humor
Evolution of java script libraries
Evolution of java script libraries
Ad

More Related Content

What's hot (20)

LAMP is so yesterday, MEAN is so tomorrow! :)
LAMP is so yesterday, MEAN is so tomorrow! :) LAMP is so yesterday, MEAN is so tomorrow! :)
LAMP is so yesterday, MEAN is so tomorrow! :)
Sascha Sambale
 
Introduction to mean stack
Introduction to mean stackIntroduction to mean stack
Introduction to mean stack
Praveen Gubbala
 
MEAN stack
MEAN stackMEAN stack
MEAN stack
Iryney Baran
 
Mern stack developement
Mern stack developementMern stack developement
Mern stack developement
kalyankumar836878
 
[Blibli Brown Bag] Nodejs - The Other Side of Javascript
[Blibli Brown Bag] Nodejs - The Other Side of Javascript[Blibli Brown Bag] Nodejs - The Other Side of Javascript
[Blibli Brown Bag] Nodejs - The Other Side of Javascript
Irfan Maulana
 
The Evolution Of JavaScript
The Evolution Of JavaScriptThe Evolution Of JavaScript
The Evolution Of JavaScript
Mostafa Zaki
 
NodeSummit - MEAN Stack
NodeSummit - MEAN StackNodeSummit - MEAN Stack
NodeSummit - MEAN Stack
Valeri Karpov
 
ITT Flisol 2013
ITT Flisol 2013ITT Flisol 2013
ITT Flisol 2013
Domingo Suarez Torres
 
Mean PPT
Mean PPTMean PPT
Mean PPT
Harendra Singh Bisht
 
The MEAN Stack
The MEAN StackThe MEAN Stack
The MEAN Stack
Md. Ziaul Haq
 
Rapid Application Development with MEAN Stack
Rapid Application Development with MEAN StackRapid Application Development with MEAN Stack
Rapid Application Development with MEAN Stack
Avinash Kaza
 
Kick start your journey as mern stack developer
Kick start your journey as mern stack developerKick start your journey as mern stack developer
Kick start your journey as mern stack developer
ShrutiPanjwani1
 
Introduction to the MEAN stack
Introduction to the MEAN stackIntroduction to the MEAN stack
Introduction to the MEAN stack
Yoann Gotthilf
 
What is a good technology stack today?
What is a good technology stack today?What is a good technology stack today?
What is a good technology stack today?
Netlight Consulting
 
Gutenberg: You Can't Teach an Old Dev New Tricks - WordCamp Chicago 2018
Gutenberg: You Can't Teach an Old Dev New Tricks - WordCamp Chicago 2018Gutenberg: You Can't Teach an Old Dev New Tricks - WordCamp Chicago 2018
Gutenberg: You Can't Teach an Old Dev New Tricks - WordCamp Chicago 2018
Mike Hale
 
Javascript Frameworks Comparison
Javascript Frameworks ComparisonJavascript Frameworks Comparison
Javascript Frameworks Comparison
Deepu S Nath
 
Web Assembly (W3C TPAC presentation)
Web Assembly (W3C TPAC presentation)Web Assembly (W3C TPAC presentation)
Web Assembly (W3C TPAC presentation)
Kenneth Rohde Christiansen
 
Building your first MEAN application
Building your first MEAN applicationBuilding your first MEAN application
Building your first MEAN application
FITC
 
Web assembly - Future of the Web
Web assembly - Future of the WebWeb assembly - Future of the Web
Web assembly - Future of the Web
CodeValue
 
Introduction to JS frameworks
Introduction to JS frameworksIntroduction to JS frameworks
Introduction to JS frameworks
Deepu S Nath
 
LAMP is so yesterday, MEAN is so tomorrow! :)
LAMP is so yesterday, MEAN is so tomorrow! :) LAMP is so yesterday, MEAN is so tomorrow! :)
LAMP is so yesterday, MEAN is so tomorrow! :)
Sascha Sambale
 
Introduction to mean stack
Introduction to mean stackIntroduction to mean stack
Introduction to mean stack
Praveen Gubbala
 
[Blibli Brown Bag] Nodejs - The Other Side of Javascript
[Blibli Brown Bag] Nodejs - The Other Side of Javascript[Blibli Brown Bag] Nodejs - The Other Side of Javascript
[Blibli Brown Bag] Nodejs - The Other Side of Javascript
Irfan Maulana
 
The Evolution Of JavaScript
The Evolution Of JavaScriptThe Evolution Of JavaScript
The Evolution Of JavaScript
Mostafa Zaki
 
NodeSummit - MEAN Stack
NodeSummit - MEAN StackNodeSummit - MEAN Stack
NodeSummit - MEAN Stack
Valeri Karpov
 
Rapid Application Development with MEAN Stack
Rapid Application Development with MEAN StackRapid Application Development with MEAN Stack
Rapid Application Development with MEAN Stack
Avinash Kaza
 
Kick start your journey as mern stack developer
Kick start your journey as mern stack developerKick start your journey as mern stack developer
Kick start your journey as mern stack developer
ShrutiPanjwani1
 
Introduction to the MEAN stack
Introduction to the MEAN stackIntroduction to the MEAN stack
Introduction to the MEAN stack
Yoann Gotthilf
 
What is a good technology stack today?
What is a good technology stack today?What is a good technology stack today?
What is a good technology stack today?
Netlight Consulting
 
Gutenberg: You Can't Teach an Old Dev New Tricks - WordCamp Chicago 2018
Gutenberg: You Can't Teach an Old Dev New Tricks - WordCamp Chicago 2018Gutenberg: You Can't Teach an Old Dev New Tricks - WordCamp Chicago 2018
Gutenberg: You Can't Teach an Old Dev New Tricks - WordCamp Chicago 2018
Mike Hale
 
Javascript Frameworks Comparison
Javascript Frameworks ComparisonJavascript Frameworks Comparison
Javascript Frameworks Comparison
Deepu S Nath
 
Building your first MEAN application
Building your first MEAN applicationBuilding your first MEAN application
Building your first MEAN application
FITC
 
Web assembly - Future of the Web
Web assembly - Future of the WebWeb assembly - Future of the Web
Web assembly - Future of the Web
CodeValue
 
Introduction to JS frameworks
Introduction to JS frameworksIntroduction to JS frameworks
Introduction to JS frameworks
Deepu S Nath
 

Similar to Evolution of java script libraries (20)

Ajax
AjaxAjax
Ajax
Tech_MX
 
Intro to SPA using JavaScript & ASP.NET
Intro to SPA using JavaScript & ASP.NETIntro to SPA using JavaScript & ASP.NET
Intro to SPA using JavaScript & ASP.NET
Alan Hecht
 
Javascript frameworks
Javascript frameworksJavascript frameworks
Javascript frameworks
RajkumarJangid7
 
An introduction to Node.js
An introduction to Node.jsAn introduction to Node.js
An introduction to Node.js
Kasey McCurdy
 
What is Mean Stack Development ?
What is Mean Stack Development ?What is Mean Stack Development ?
What is Mean Stack Development ?
Balajihope
 
Meanstack Introduction by Kishore Chandra
Meanstack Introduction by Kishore ChandraMeanstack Introduction by Kishore Chandra
Meanstack Introduction by Kishore Chandra
Kishore Chandra
 
mearn-stackjdksjdsfjdkofkdokodkojdj.pptx
mearn-stackjdksjdsfjdkofkdokodkojdj.pptxmearn-stackjdksjdsfjdkofkdokodkojdj.pptx
mearn-stackjdksjdsfjdkofkdokodkojdj.pptx
aravym456
 
MEAN Stack
MEAN StackMEAN Stack
MEAN Stack
Krishnaprasad k
 
MEAN Stack
MEAN StackMEAN Stack
MEAN Stack
Krishnaprasad k
 
Introduction to Jquery
Introduction to JqueryIntroduction to Jquery
Introduction to Jquery
Gurpreet singh
 
Project First presentation about introduction to technologies to be used
Project First presentation about introduction to technologies to be usedProject First presentation about introduction to technologies to be used
Project First presentation about introduction to technologies to be used
arya krazydude
 
mearn-stack-new_ccvbhbhvgvgcdszsxdxfcf.pptx
mearn-stack-new_ccvbhbhvgvgcdszsxdxfcf.pptxmearn-stack-new_ccvbhbhvgvgcdszsxdxfcf.pptx
mearn-stack-new_ccvbhbhvgvgcdszsxdxfcf.pptx
aravym456
 
Javascript & Jquery
Javascript & JqueryJavascript & Jquery
Javascript & Jquery
Gurpreet singh
 
Mean stack
Mean stackMean stack
Mean stack
RavikantGautam8
 
Frameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic ReviewFrameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic Review
netc2012
 
Transforming the web into a real application platform
Transforming the web into a real application platformTransforming the web into a real application platform
Transforming the web into a real application platform
Mohanadarshan Vivekanandalingam
 
Single page App
Single page AppSingle page App
Single page App
Gaurav Gawande
 
Top 10 frameworks of node js
Top 10 frameworks of node jsTop 10 frameworks of node js
Top 10 frameworks of node js
HabileLabs
 
Javascript 01 (js)
Javascript 01 (js)Javascript 01 (js)
Javascript 01 (js)
AbhishekMondal42
 
Node js installation steps.pptx slide share ppts
Node js installation steps.pptx slide share pptsNode js installation steps.pptx slide share ppts
Node js installation steps.pptx slide share ppts
HemaSenthil5
 
Intro to SPA using JavaScript & ASP.NET
Intro to SPA using JavaScript & ASP.NETIntro to SPA using JavaScript & ASP.NET
Intro to SPA using JavaScript & ASP.NET
Alan Hecht
 
An introduction to Node.js
An introduction to Node.jsAn introduction to Node.js
An introduction to Node.js
Kasey McCurdy
 
What is Mean Stack Development ?
What is Mean Stack Development ?What is Mean Stack Development ?
What is Mean Stack Development ?
Balajihope
 
Meanstack Introduction by Kishore Chandra
Meanstack Introduction by Kishore ChandraMeanstack Introduction by Kishore Chandra
Meanstack Introduction by Kishore Chandra
Kishore Chandra
 
mearn-stackjdksjdsfjdkofkdokodkojdj.pptx
mearn-stackjdksjdsfjdkofkdokodkojdj.pptxmearn-stackjdksjdsfjdkofkdokodkojdj.pptx
mearn-stackjdksjdsfjdkofkdokodkojdj.pptx
aravym456
 
Introduction to Jquery
Introduction to JqueryIntroduction to Jquery
Introduction to Jquery
Gurpreet singh
 
Project First presentation about introduction to technologies to be used
Project First presentation about introduction to technologies to be usedProject First presentation about introduction to technologies to be used
Project First presentation about introduction to technologies to be used
arya krazydude
 
mearn-stack-new_ccvbhbhvgvgcdszsxdxfcf.pptx
mearn-stack-new_ccvbhbhvgvgcdszsxdxfcf.pptxmearn-stack-new_ccvbhbhvgvgcdszsxdxfcf.pptx
mearn-stack-new_ccvbhbhvgvgcdszsxdxfcf.pptx
aravym456
 
Frameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic ReviewFrameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic Review
netc2012
 
Top 10 frameworks of node js
Top 10 frameworks of node jsTop 10 frameworks of node js
Top 10 frameworks of node js
HabileLabs
 
Node js installation steps.pptx slide share ppts
Node js installation steps.pptx slide share pptsNode js installation steps.pptx slide share ppts
Node js installation steps.pptx slide share ppts
HemaSenthil5
 
Ad

Recently uploaded (16)

5-Ways-To-Future-Proof-Your-SIEM-Securonix[1].pdf
5-Ways-To-Future-Proof-Your-SIEM-Securonix[1].pdf5-Ways-To-Future-Proof-Your-SIEM-Securonix[1].pdf
5-Ways-To-Future-Proof-Your-SIEM-Securonix[1].pdf
AndrHenrique77
 
Determining Glass is mechanical textile
Determining  Glass is mechanical textileDetermining  Glass is mechanical textile
Determining Glass is mechanical textile
Azizul Hakim
 
Best web hosting Vancouver 2025 for you business
Best web hosting Vancouver 2025 for you businessBest web hosting Vancouver 2025 for you business
Best web hosting Vancouver 2025 for you business
steve198109
 
Seminar.MAJor presentation for final project viva
Seminar.MAJor presentation for final project vivaSeminar.MAJor presentation for final project viva
Seminar.MAJor presentation for final project viva
daditya2501
 
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHostingTop Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
steve198109
 
highend-srxseries-services-gateways-customer-presentation.pptx
highend-srxseries-services-gateways-customer-presentation.pptxhighend-srxseries-services-gateways-customer-presentation.pptx
highend-srxseries-services-gateways-customer-presentation.pptx
elhadjcheikhdiop
 
AI Days 2025_GM1 : Interface in theage of AI
AI Days 2025_GM1 : Interface in theage of AIAI Days 2025_GM1 : Interface in theage of AI
AI Days 2025_GM1 : Interface in theage of AI
Prashant Singh
 
Breaching The Perimeter - Our Most Impactful Bug Bounty Findings.pdf
Breaching The Perimeter - Our Most Impactful Bug Bounty Findings.pdfBreaching The Perimeter - Our Most Impactful Bug Bounty Findings.pdf
Breaching The Perimeter - Our Most Impactful Bug Bounty Findings.pdf
Nirmalthapa24
 
(Hosting PHising Sites) for Cryptography and network security
(Hosting PHising Sites) for Cryptography and network security(Hosting PHising Sites) for Cryptography and network security
(Hosting PHising Sites) for Cryptography and network security
aluacharya169
 
Cyber Safety: security measure about navegating on internet.
Cyber Safety: security measure about navegating on internet.Cyber Safety: security measure about navegating on internet.
Cyber Safety: security measure about navegating on internet.
manugodinhogentil
 
Reliable Vancouver Web Hosting with Local Servers & 24/7 Support
Reliable Vancouver Web Hosting with Local Servers & 24/7 SupportReliable Vancouver Web Hosting with Local Servers & 24/7 Support
Reliable Vancouver Web Hosting with Local Servers & 24/7 Support
steve198109
 
OSI TCP IP Protocol Layers description f
OSI TCP IP Protocol Layers description fOSI TCP IP Protocol Layers description f
OSI TCP IP Protocol Layers description f
cbr49917
 
cxbcxfzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz7.pdf
cxbcxfzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz7.pdfcxbcxfzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz7.pdf
cxbcxfzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz7.pdf
ssuser060b2e1
 
project_based_laaaaaaaaaaearning,kelompok 10.pptx
project_based_laaaaaaaaaaearning,kelompok 10.pptxproject_based_laaaaaaaaaaearning,kelompok 10.pptx
project_based_laaaaaaaaaaearning,kelompok 10.pptx
redzuriel13
 
Grade 7 Google_Sites_Lesson creating website.pptx
Grade 7 Google_Sites_Lesson creating website.pptxGrade 7 Google_Sites_Lesson creating website.pptx
Grade 7 Google_Sites_Lesson creating website.pptx
AllanGuevarra1
 
Organizing_Data_Grade4 how to organize.pptx
Organizing_Data_Grade4 how to organize.pptxOrganizing_Data_Grade4 how to organize.pptx
Organizing_Data_Grade4 how to organize.pptx
AllanGuevarra1
 
5-Ways-To-Future-Proof-Your-SIEM-Securonix[1].pdf
5-Ways-To-Future-Proof-Your-SIEM-Securonix[1].pdf5-Ways-To-Future-Proof-Your-SIEM-Securonix[1].pdf
5-Ways-To-Future-Proof-Your-SIEM-Securonix[1].pdf
AndrHenrique77
 
Determining Glass is mechanical textile
Determining  Glass is mechanical textileDetermining  Glass is mechanical textile
Determining Glass is mechanical textile
Azizul Hakim
 
Best web hosting Vancouver 2025 for you business
Best web hosting Vancouver 2025 for you businessBest web hosting Vancouver 2025 for you business
Best web hosting Vancouver 2025 for you business
steve198109
 
Seminar.MAJor presentation for final project viva
Seminar.MAJor presentation for final project vivaSeminar.MAJor presentation for final project viva
Seminar.MAJor presentation for final project viva
daditya2501
 
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHostingTop Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
Top Vancouver Green Business Ideas for 2025 Powered by 4GoodHosting
steve198109
 
highend-srxseries-services-gateways-customer-presentation.pptx
highend-srxseries-services-gateways-customer-presentation.pptxhighend-srxseries-services-gateways-customer-presentation.pptx
highend-srxseries-services-gateways-customer-presentation.pptx
elhadjcheikhdiop
 
AI Days 2025_GM1 : Interface in theage of AI
AI Days 2025_GM1 : Interface in theage of AIAI Days 2025_GM1 : Interface in theage of AI
AI Days 2025_GM1 : Interface in theage of AI
Prashant Singh
 
Breaching The Perimeter - Our Most Impactful Bug Bounty Findings.pdf
Breaching The Perimeter - Our Most Impactful Bug Bounty Findings.pdfBreaching The Perimeter - Our Most Impactful Bug Bounty Findings.pdf
Breaching The Perimeter - Our Most Impactful Bug Bounty Findings.pdf
Nirmalthapa24
 
(Hosting PHising Sites) for Cryptography and network security
(Hosting PHising Sites) for Cryptography and network security(Hosting PHising Sites) for Cryptography and network security
(Hosting PHising Sites) for Cryptography and network security
aluacharya169
 
Cyber Safety: security measure about navegating on internet.
Cyber Safety: security measure about navegating on internet.Cyber Safety: security measure about navegating on internet.
Cyber Safety: security measure about navegating on internet.
manugodinhogentil
 
Reliable Vancouver Web Hosting with Local Servers & 24/7 Support
Reliable Vancouver Web Hosting with Local Servers & 24/7 SupportReliable Vancouver Web Hosting with Local Servers & 24/7 Support
Reliable Vancouver Web Hosting with Local Servers & 24/7 Support
steve198109
 
OSI TCP IP Protocol Layers description f
OSI TCP IP Protocol Layers description fOSI TCP IP Protocol Layers description f
OSI TCP IP Protocol Layers description f
cbr49917
 
cxbcxfzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz7.pdf
cxbcxfzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz7.pdfcxbcxfzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz7.pdf
cxbcxfzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz7.pdf
ssuser060b2e1
 
project_based_laaaaaaaaaaearning,kelompok 10.pptx
project_based_laaaaaaaaaaearning,kelompok 10.pptxproject_based_laaaaaaaaaaearning,kelompok 10.pptx
project_based_laaaaaaaaaaearning,kelompok 10.pptx
redzuriel13
 
Grade 7 Google_Sites_Lesson creating website.pptx
Grade 7 Google_Sites_Lesson creating website.pptxGrade 7 Google_Sites_Lesson creating website.pptx
Grade 7 Google_Sites_Lesson creating website.pptx
AllanGuevarra1
 
Organizing_Data_Grade4 how to organize.pptx
Organizing_Data_Grade4 how to organize.pptxOrganizing_Data_Grade4 how to organize.pptx
Organizing_Data_Grade4 how to organize.pptx
AllanGuevarra1
 
Ad

Evolution of java script libraries

  • 1. Evolution of JavaScript “ Java is to JavaScript as Car is to Carpet” - Chris Heilmann
  • 2. the early days of JavaScript • a dynamic scripting language • kind of quirky but lots of features. • introduced by Netscape to have a language that can run client side code in a browser. • has absolutely nothing to do with the Java language. • they share similar syntax both derived from the "C" style of languages. • Microsoft entered with their "compatible implementation" called "Jscript"
  • 3. AJAX - Asynchronous JavaScript and XML • used to send data from client to server you would post a form or click a link with data. browser would then load a whole new page. effective but real fast and not real efficient. • can use XML with AJAX but it's not required, and today very few do, most developers today just use JSON.
  • 4. AJAX - Asynchronous JavaScript and XML • along came XMLHttpRequest, this allowed JavaScript to send and receive data in the background. • using DHMTL along with AJAX allowed the script to only update portions of a page to reflect the new data. • it took years for XMLHttpRequest to standardize across browsers to the point where it was widely used. • first apps using cross browser Ajax Gmail (2004) and Google Maps (2005)
  • 5. JSON - JavaScript Object Notation • a text-based format for data exchange • mechanism for encoding data as text • similar to XML in a way that is readable by humans and parsable by computers • more compact and lighter weight than XML • has fewer features does not support things like meta-data or attributes. • yahoo began to offer Web Services in JSON 2005 • Google started offering JSON feeds of GData web protocol in 2006
  • 6. JQuery • a framework • a DOM manipulation library • circa 2006, an open source JavaScript library for client side development • allows the developer to find and manipulate elements of document far easier than anything before • smooth's over browser incompatibilities so that browser can be treated mostly the same. • simplifies HTML document traversing
  • 7. JQuery • JQuery's tag line is "Write Less Do More" • Suddenly client-side code was small and concise and working in almost ever browser • ability to reduce client-side code • now worth the effort to start moving functionality from the server to the client
  • 8. JQuery • One of the most successful and widely adopted libraries around • Estimated by Wikipedia to be used by 65% of the 10,000 most visited web sites.
  • 9. change the background color of a body tag JavaScript Function changeBackground(color){ Document.body.style.background = color; } Onload="changeBackground('red'); JQuery $('body').css('background','#ccc');
  • 10. Post JQuery - frameworks • JQuery and AJAX let web developers do more with JavaScript, and generated a lot of new frameworks • CoffeScript: a programming language that transcompiles to JavaScript • large following in Ruby community • CoffeeScript support is included in Ruby on Rails
  • 11. Post JQuery - frameworks • Frameworks: offers developers client-side MVC, templating and databinding on the client side. • Knockout.js • AngularJS • JavaScriptMVC • Backbone.js • Ember.js
  • 12. why use client-side MVC frameworks? • It's all about balance. • finding the right balance between server and client • good candidates for use in SPA (single page applications)
  • 13. templating • AngularJS • HTML binding expression baked-in • Ember • uses Handlebars template engine, extension of Mustache.js • Backbone • integrated with third party template default choice is Underscore
  • 14. Angular templating example In Angular when we reference template I would mean the view of the HTML enriched by the various Angular directives and the markup used for data binding (the expression in double curly braces {{}}). We can go a step further and not only regard a whole HTML document as a template but also any HTML fragment, often referred to as partials.
  • 15. templating example an Angular template example to display the full name of every person in a simple list <body ng-app="myApp"> <div ng-controller="PersonCtrl"> <div ng-repeat="person in persons"> {{person.last}}, {{person.first}} {{person.middle}} </div> </div> </body>
  • 17. Post JQuery - to the server • Node.js • a different animal entirely. • server side application using JavaScript • used to create lightweight HTTP server applications such as Web services that do support client-side code.