SlideShare a Scribd company logo
1 of 26
Ajax
For dummies and not only…
Author: Alexios Tzanetopoulos - Developer
So…. What is Ajax?
 Ajax stands for: Asynchronous JavaScript and XML
 It is a set of techniques for creating highly interactive web sites and web
applications.
Examples?
http://www.aia.gr/traveler/flight-info/rtfi/
http://peteranswers.com/
Main idea
 The idea is to make what’s on the Web appear to be local by giving you a
rich user experience, offering you features that usually only appear in
desktop applications.
Is Ajax a technology?
Ajax is NOT a technology. It’s a combination of several technologies:
 standards-based presentation using XHTML and CSS;
 dynamic display, interaction using the Document Object Model (DOM);
 data interchange and manipulation using XML and JSON;
 asynchronous data retrieval using XMLHttpRequest object;
 and JavaScript binding everything together.
A little bit of History
 Microsoft Outlook Web Access team implemented Ajax in 1998
 Google maps and Gmail used it in 2005
 James Garret wrote an article combining the techniques that google used
and that’s how the term Ajax was coined (2005)
 W3C released the first draft specification for the XMLHttpRequest object in
an attempt to create an official web standard in 2006
Hands on code…
 HTML - CSS
<H1>An Ajax example</H1>
<form>
<input type = "button" value = "Fetch the
message“ onclick = "getData('data.php',
'targetDiv')">
</form>
<div id="targetDiv">
<p>The fetched message will appear
here.</p>
</div>
Hands on code… continued
 Javascript – XmlHttpRequest – DOM Manipulation
<script language = "javascript">
var XMLHttpRequestObject = false;
if (window.XMLHttpRequest) XMLHttpRequestObject = new XMLHttpRequest();
else if (window.ActiveXObject) {
XMLHttpRequestObject = new
ActiveXObject("Microsoft.XMLHTTP");}
function getData(dataSource, divID){
if(XMLHttpRequestObject) {
var obj = document.getElementById(divID);
XMLHttpRequestObject.open("GET", dataSource);
XMLHttpRequestObject.onreadystatechange = function(){
if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200)
obj.innerHTML = XMLHttpRequestObject.responseText;
XMLHttpRequestObject.send(null);
}
}
</script>
Hands on code… continued
 PHP
<?php
echo 'This text comes to you thanks to PHP.';
?>
Result?
Don’t believe it? Click here!
Ready states and status codes
Ready states
 0 Uninitialized
 1 Loading
 2 Loaded
 3 Interactive
 4 Complete
Ready states and status codes
Status codes
 1xx Informational
 2xx Successful
 3xx Redirection
 4xx Client error
 5xx Server error
Famous examples
 200 OK
 201 Created
 400 Bad Request
 401 Unauthorized
 403 Forbidden
 404 Not Found
Possibilities
 That was plain text answer from the server. It could also be a xml or json
object
 Connection with a database
 Not only Get data but also Post data
Usages
 Web forms (password strength, autocomplete searches e.t.c.)
 On-page notifications (like facebook)
 On-site Instant Messaging (every chat uses ajax)
 Collaborative tools (many people working on the same doc)
 External widgets
 and many many many many more…
XML Format
<CATALOG>
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
….
XML Parsing
x=xmlhttp.responseXML.documentElement.getElementsByTagName("CD");
for (i=0;i<x.length;i++){
xx=x[i].getElementsByTagName("TITLE");{
txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
}
xx=x[i].getElementsByTagName("ARTIST");
{
txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
}
txt=txt + "</tr>";
}
Drawbacks
 Bookmarking a page
 Going back on a previous page
 Difficult for a web crawler to index a page
 Now every browser support javascript and XHR
 Difficult for screen readers
What About jQuery and AJAX?
 Writing regular AJAX code can be a bit tricky
 Different browsers have different syntax for AJAX implementation
 This means that you will have to write extra code to test for different
browsers
 The jQuery team has taken care of this for us
 We can write AJAX functionality with only one single line of code
jQuery load() Method
The jQuery load() method is a simple, but powerful AJAX method. It loads data
from a server and puts the returned data into the selected element.
$(selector).load(URL,data,callback);
 The required URL parameter specifies the URL you wish to load.
 The optional data parameter specifies a set of querystring key/value pairs
to send along with the request.
 The optional callback parameter is the name of a function to be executed
after the load() method is completed.
jQuery load() Method Ex.
jQuery
$("button").click(function(){
$("#div1").load("demo_test.txt",function(responseTxt,statusTxt,xhr){
if(statusTxt=="success")
alert("External content loaded successfully!");
if(statusTxt=="error")
alert("Error: "+xhr.status+": "+xhr.statusText);
});
});
demo_test.txt
<h2>jQuery and AJAX is FUN!!!</h2>
<p id="p1">This is some text in a paragraph.</p>
jQuery $.get() Method
The $.get() method requests data from the server with an HTTP GET request.
$.get(URL,callback);
 The required URL parameter specifies the URL you wish to request.
 The optional callback parameter is the name of a function to be executed
if the request succeeds.
jQuery $.get() Method Ex.
jQuery
$("button").click(function(){
$.get("demo_test.php",function(data,status){
alert("Data: " + data + "nStatus: " + status);
});
});
demo_test.php
<?php
echo 'This text comes to you thanks to PHP.';
?>
jQuery $.post() Method
The $.get() method requests data from the server with an HTTP POST request.
$.post(URL,data,callback);
 The required URL parameter specifies the URL you wish to request.
 The optional data parameter specifies some data to send along with the
request.
 The optional callback parameter is the name of a function to be executed
if the request succeeds.
jQuery $.post() Method Ex.
jQuery
$("button").click(function(){
$.post("demo_test_post.asp",
{
name:"Donald Duck",
city:"Duckburg"
},
function(data,status){
alert("Data: " + data + "nStatus: " + status);
});
});
demo_test.asp
<%
dim fname,city
fname=Request.Form("name")
city=Request.Form("city")
Response.Write("Dear " & fname & ". ")
Response.Write("Hope you live well in " & city & ".")
%>
HTTP GET vs HTTP POST
GET POST
BACK button/Reload Harmless
Data will be re-submitted (the browser
should alert the user that the data are
about to be re-submitted)
Bookmarked Can be bookmarked Cannot be bookmarked
Cached Can be cached Not cached
History Parameters remain in browser history
Parameters are not saved in browser
history
Restrictions on data length
Yes, when sending data, the GET method
adds the data to the URL; and the length
of a URL is limited (maximum URL length is
2048 characters)
No restrictions
Restrictions on data type Only ASCII characters allowed No restrictions. Binary data is also allowed
Security
GET is less secure compared to POST
because data sent is part of the URL
Never use GET when sending passwords or
other sensitive information!
POST is a little safer than GET because the
parameters are not stored in browser
history or in web server logs
Visibility Data is visible to everyone in the URL Data is not displayed in the URL
Too easy for you?
Take a look at reverse-ajax, a.k.a. Comet.
A Web server pushes data to a browser, without the browser explicitly
requesting it.
Good luck with it…
Like it?
Kris Hadlock – Ajax for Web Application Developers
http://www.w3schools.com/jquery/
http://en.wikipedia.org/wiki/Ajax_%28programming%29
http://thesharad.files.wordpress.com/2010/10/ajax-a-beginners-guide.pdf
Bibliography

More Related Content

What's hot

Ajax Introduction Presentation
Ajax   Introduction   PresentationAjax   Introduction   Presentation
Ajax Introduction Presentation
thinkphp
 

What's hot (20)

VBA API for scriptDB primer
VBA API for scriptDB primerVBA API for scriptDB primer
VBA API for scriptDB primer
 
Ajax Presentation
Ajax PresentationAjax Presentation
Ajax Presentation
 
Ajax
AjaxAjax
Ajax
 
Ajax.ppt
Ajax.pptAjax.ppt
Ajax.ppt
 
AJAX
AJAXAJAX
AJAX
 
Using script db as a deaddrop to pass data between GAS, JS and Excel
Using script db as a deaddrop to pass data between GAS, JS and ExcelUsing script db as a deaddrop to pass data between GAS, JS and Excel
Using script db as a deaddrop to pass data between GAS, JS and Excel
 
Ajax Introduction Presentation
Ajax   Introduction   PresentationAjax   Introduction   Presentation
Ajax Introduction Presentation
 
Do something useful in Apps Script 5. Get your analytics pageviews to a sprea...
Do something useful in Apps Script 5. Get your analytics pageviews to a sprea...Do something useful in Apps Script 5. Get your analytics pageviews to a sprea...
Do something useful in Apps Script 5. Get your analytics pageviews to a sprea...
 
jQuery - Chapter 5 - Ajax
jQuery - Chapter 5 -  AjaxjQuery - Chapter 5 -  Ajax
jQuery - Chapter 5 - Ajax
 
Asynchronous JavaScript & XML (AJAX)
Asynchronous JavaScript & XML (AJAX)Asynchronous JavaScript & XML (AJAX)
Asynchronous JavaScript & XML (AJAX)
 
Ajax Ppt 1
Ajax Ppt 1Ajax Ppt 1
Ajax Ppt 1
 
Do something in 5 with gas 3-simple invoicing app
Do something in 5 with gas 3-simple invoicing appDo something in 5 with gas 3-simple invoicing app
Do something in 5 with gas 3-simple invoicing app
 
Ajax
AjaxAjax
Ajax
 
jQuery - Chapter 4 - DOM Handling
jQuery - Chapter 4 - DOM Handling jQuery - Chapter 4 - DOM Handling
jQuery - Chapter 4 - DOM Handling
 
React 101
React 101React 101
React 101
 
Ajax and xml
Ajax and xmlAjax and xml
Ajax and xml
 
Do something in 5 with gas 4- Get your analytics profiles to a spreadsheet
Do something in 5 with gas 4- Get your analytics profiles to a spreadsheetDo something in 5 with gas 4- Get your analytics profiles to a spreadsheet
Do something in 5 with gas 4- Get your analytics profiles to a spreadsheet
 
Beyond HTML: Tools for Building Web 2.0 Apps
Beyond HTML: Tools for Building Web 2.0 AppsBeyond HTML: Tools for Building Web 2.0 Apps
Beyond HTML: Tools for Building Web 2.0 Apps
 
KMI System
KMI SystemKMI System
KMI System
 
Ajax ppt
Ajax pptAjax ppt
Ajax ppt
 

Similar to Ajax for dummies, and not only.

Ajax Fundamentals Web Applications
Ajax Fundamentals Web ApplicationsAjax Fundamentals Web Applications
Ajax Fundamentals Web Applications
dominion
 
Ajax tutorial
Ajax tutorialAjax tutorial
Ajax tutorial
Kat Roque
 
JavaScript para Graficos y Visualizacion de Datos
JavaScript para Graficos y Visualizacion de DatosJavaScript para Graficos y Visualizacion de Datos
JavaScript para Graficos y Visualizacion de Datos
philogb
 

Similar to Ajax for dummies, and not only. (20)

JSON and XML
JSON and XMLJSON and XML
JSON and XML
 
jQuery for beginners
jQuery for beginnersjQuery for beginners
jQuery for beginners
 
Ajax Fundamentals Web Applications
Ajax Fundamentals Web ApplicationsAjax Fundamentals Web Applications
Ajax Fundamentals Web Applications
 
Building Applications Using Ajax
Building Applications Using AjaxBuilding Applications Using Ajax
Building Applications Using Ajax
 
J query 01.07.2013.html
J query 01.07.2013.htmlJ query 01.07.2013.html
J query 01.07.2013.html
 
J query 01.07.2013
J query 01.07.2013J query 01.07.2013
J query 01.07.2013
 
How to make Ajax work for you
How to make Ajax work for youHow to make Ajax work for you
How to make Ajax work for you
 
Ajax Lecture Notes
Ajax Lecture NotesAjax Lecture Notes
Ajax Lecture Notes
 
AJAX Workshop Notes
AJAX Workshop NotesAJAX Workshop Notes
AJAX Workshop Notes
 
Pascarello_Investigating JavaScript and Ajax Security
Pascarello_Investigating JavaScript and Ajax SecurityPascarello_Investigating JavaScript and Ajax Security
Pascarello_Investigating JavaScript and Ajax Security
 
Ajax.ppt
Ajax.pptAjax.ppt
Ajax.ppt
 
JavaScript JQUERY AJAX
JavaScript JQUERY AJAXJavaScript JQUERY AJAX
JavaScript JQUERY AJAX
 
Ajax tutorial
Ajax tutorialAjax tutorial
Ajax tutorial
 
huhu
huhuhuhu
huhu
 
AJAX
AJAXAJAX
AJAX
 
AJAX
AJAXAJAX
AJAX
 
Jquery 4
Jquery 4Jquery 4
Jquery 4
 
Cross Domain Web
Mashups with JQuery and Google App Engine
Cross Domain Web
Mashups with JQuery and Google App EngineCross Domain Web
Mashups with JQuery and Google App Engine
Cross Domain Web
Mashups with JQuery and Google App Engine
 
JavaScript para Graficos y Visualizacion de Datos
JavaScript para Graficos y Visualizacion de DatosJavaScript para Graficos y Visualizacion de Datos
JavaScript para Graficos y Visualizacion de Datos
 
Ajax
AjaxAjax
Ajax
 

More from Nerd Tzanetopoulos (11)

Symfony2 Introduction Presentation
Symfony2 Introduction PresentationSymfony2 Introduction Presentation
Symfony2 Introduction Presentation
 
Symperasmata
SymperasmataSymperasmata
Symperasmata
 
Peirama2
Peirama2Peirama2
Peirama2
 
Peirama2
Peirama2Peirama2
Peirama2
 
Peirama2
Peirama2Peirama2
Peirama2
 
Genikeuseis
GenikeuseisGenikeuseis
Genikeuseis
 
Peirama
PeiramaPeirama
Peirama
 
Ypotheseis
YpotheseisYpotheseis
Ypotheseis
 
Enaysma
EnaysmaEnaysma
Enaysma
 
Ergasia Kausima
Ergasia KausimaErgasia Kausima
Ergasia Kausima
 
εργασία καύσιμα
εργασία καύσιμαεργασία καύσιμα
εργασία καύσιμα
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Recently uploaded (20)

Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

Ajax for dummies, and not only.

  • 1. Ajax For dummies and not only… Author: Alexios Tzanetopoulos - Developer
  • 2. So…. What is Ajax?  Ajax stands for: Asynchronous JavaScript and XML  It is a set of techniques for creating highly interactive web sites and web applications. Examples? http://www.aia.gr/traveler/flight-info/rtfi/ http://peteranswers.com/
  • 3. Main idea  The idea is to make what’s on the Web appear to be local by giving you a rich user experience, offering you features that usually only appear in desktop applications.
  • 4. Is Ajax a technology? Ajax is NOT a technology. It’s a combination of several technologies:  standards-based presentation using XHTML and CSS;  dynamic display, interaction using the Document Object Model (DOM);  data interchange and manipulation using XML and JSON;  asynchronous data retrieval using XMLHttpRequest object;  and JavaScript binding everything together.
  • 5. A little bit of History  Microsoft Outlook Web Access team implemented Ajax in 1998  Google maps and Gmail used it in 2005  James Garret wrote an article combining the techniques that google used and that’s how the term Ajax was coined (2005)  W3C released the first draft specification for the XMLHttpRequest object in an attempt to create an official web standard in 2006
  • 6. Hands on code…  HTML - CSS <H1>An Ajax example</H1> <form> <input type = "button" value = "Fetch the message“ onclick = "getData('data.php', 'targetDiv')"> </form> <div id="targetDiv"> <p>The fetched message will appear here.</p> </div>
  • 7. Hands on code… continued  Javascript – XmlHttpRequest – DOM Manipulation <script language = "javascript"> var XMLHttpRequestObject = false; if (window.XMLHttpRequest) XMLHttpRequestObject = new XMLHttpRequest(); else if (window.ActiveXObject) { XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");} function getData(dataSource, divID){ if(XMLHttpRequestObject) { var obj = document.getElementById(divID); XMLHttpRequestObject.open("GET", dataSource); XMLHttpRequestObject.onreadystatechange = function(){ if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) obj.innerHTML = XMLHttpRequestObject.responseText; XMLHttpRequestObject.send(null); } } </script>
  • 8. Hands on code… continued  PHP <?php echo 'This text comes to you thanks to PHP.'; ?>
  • 10. Ready states and status codes Ready states  0 Uninitialized  1 Loading  2 Loaded  3 Interactive  4 Complete
  • 11. Ready states and status codes Status codes  1xx Informational  2xx Successful  3xx Redirection  4xx Client error  5xx Server error Famous examples  200 OK  201 Created  400 Bad Request  401 Unauthorized  403 Forbidden  404 Not Found
  • 12. Possibilities  That was plain text answer from the server. It could also be a xml or json object  Connection with a database  Not only Get data but also Post data
  • 13. Usages  Web forms (password strength, autocomplete searches e.t.c.)  On-page notifications (like facebook)  On-site Instant Messaging (every chat uses ajax)  Collaborative tools (many people working on the same doc)  External widgets  and many many many many more…
  • 14. XML Format <CATALOG> <CD> <TITLE>Empire Burlesque</TITLE> <ARTIST>Bob Dylan</ARTIST> <COUNTRY>USA</COUNTRY> <COMPANY>Columbia</COMPANY> <PRICE>10.90</PRICE> <YEAR>1985</YEAR> </CD> ….
  • 15. XML Parsing x=xmlhttp.responseXML.documentElement.getElementsByTagName("CD"); for (i=0;i<x.length;i++){ xx=x[i].getElementsByTagName("TITLE");{ txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>"; } xx=x[i].getElementsByTagName("ARTIST"); { txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>"; } txt=txt + "</tr>"; }
  • 16. Drawbacks  Bookmarking a page  Going back on a previous page  Difficult for a web crawler to index a page  Now every browser support javascript and XHR  Difficult for screen readers
  • 17. What About jQuery and AJAX?  Writing regular AJAX code can be a bit tricky  Different browsers have different syntax for AJAX implementation  This means that you will have to write extra code to test for different browsers  The jQuery team has taken care of this for us  We can write AJAX functionality with only one single line of code
  • 18. jQuery load() Method The jQuery load() method is a simple, but powerful AJAX method. It loads data from a server and puts the returned data into the selected element. $(selector).load(URL,data,callback);  The required URL parameter specifies the URL you wish to load.  The optional data parameter specifies a set of querystring key/value pairs to send along with the request.  The optional callback parameter is the name of a function to be executed after the load() method is completed.
  • 19. jQuery load() Method Ex. jQuery $("button").click(function(){ $("#div1").load("demo_test.txt",function(responseTxt,statusTxt,xhr){ if(statusTxt=="success") alert("External content loaded successfully!"); if(statusTxt=="error") alert("Error: "+xhr.status+": "+xhr.statusText); }); }); demo_test.txt <h2>jQuery and AJAX is FUN!!!</h2> <p id="p1">This is some text in a paragraph.</p>
  • 20. jQuery $.get() Method The $.get() method requests data from the server with an HTTP GET request. $.get(URL,callback);  The required URL parameter specifies the URL you wish to request.  The optional callback parameter is the name of a function to be executed if the request succeeds.
  • 21. jQuery $.get() Method Ex. jQuery $("button").click(function(){ $.get("demo_test.php",function(data,status){ alert("Data: " + data + "nStatus: " + status); }); }); demo_test.php <?php echo 'This text comes to you thanks to PHP.'; ?>
  • 22. jQuery $.post() Method The $.get() method requests data from the server with an HTTP POST request. $.post(URL,data,callback);  The required URL parameter specifies the URL you wish to request.  The optional data parameter specifies some data to send along with the request.  The optional callback parameter is the name of a function to be executed if the request succeeds.
  • 23. jQuery $.post() Method Ex. jQuery $("button").click(function(){ $.post("demo_test_post.asp", { name:"Donald Duck", city:"Duckburg" }, function(data,status){ alert("Data: " + data + "nStatus: " + status); }); }); demo_test.asp <% dim fname,city fname=Request.Form("name") city=Request.Form("city") Response.Write("Dear " & fname & ". ") Response.Write("Hope you live well in " & city & ".") %>
  • 24. HTTP GET vs HTTP POST GET POST BACK button/Reload Harmless Data will be re-submitted (the browser should alert the user that the data are about to be re-submitted) Bookmarked Can be bookmarked Cannot be bookmarked Cached Can be cached Not cached History Parameters remain in browser history Parameters are not saved in browser history Restrictions on data length Yes, when sending data, the GET method adds the data to the URL; and the length of a URL is limited (maximum URL length is 2048 characters) No restrictions Restrictions on data type Only ASCII characters allowed No restrictions. Binary data is also allowed Security GET is less secure compared to POST because data sent is part of the URL Never use GET when sending passwords or other sensitive information! POST is a little safer than GET because the parameters are not stored in browser history or in web server logs Visibility Data is visible to everyone in the URL Data is not displayed in the URL
  • 25. Too easy for you? Take a look at reverse-ajax, a.k.a. Comet. A Web server pushes data to a browser, without the browser explicitly requesting it. Good luck with it…
  • 26. Like it? Kris Hadlock – Ajax for Web Application Developers http://www.w3schools.com/jquery/ http://en.wikipedia.org/wiki/Ajax_%28programming%29 http://thesharad.files.wordpress.com/2010/10/ajax-a-beginners-guide.pdf Bibliography