AJAX Quick Guide
AJAX Quick Guide
Advertisements
WHAT IS AJAX?
AJAX stands for Asynchronous JavaScript and XML. AJAX is a new technique for creating better, faster, and
more interactive web applications with the help of XML, HTML, CSS, and Java Script.
Ajax uses XHTML for content, CSS for presentation, along with Document Object Model and JavaScript for
dynamic content display.
Conventional web applications transmit information to and from the sever using synchronous requests. It
means you fill out a form, hit submit, and get directed to a new page with new information from the server.
With AJAX, when you hit submit, JavaScript will make a request to the server, interpret the results, and
update the current screen. In the purest sense, the user would never know that anything was even
transmitted to the server.
XML is commonly used as the format for receiving server data, although any format, including plain text,
can be used.
A user can continue to use the application while the client program requests information from the server in
the background.
Intuitive and natural user interaction. Clicking is not required, mouse movement is a sufficient event
trigger.
AJAX - TECHNOLOGIES
https://www.tutorialspoint.com/cgi-bin/printpage.cgi 1/14
3/11/2019 AJAX Quick Guide
AJAX cannot work independently. It is used in combination with other technologies to create interactive
webpages.
JavaScript
Loosely typed scripting language.
JavaScript function is called when an event occurs in a page.
Glue for the whole AJAX operation.
DOM
API for accessing and manipulating structured documents.
Represents the structure of XML and HTML documents.
CSS
Allows for a clear separation of the presentation style from the content and may be changed
programmatically by JavaScript
XMLHttpRequest
JavaScript object that performs asynchronous interaction with the server.
AJAX - EXAMPLES
Here is a list of some famous web applications that make use of AJAX.
Google Maps
A user can drag an entire map by using the mouse, rather than clicking on a button.
https://maps.google.com/
Google Suggest
As you type, Google offers suggestions. Use the arrow keys to navigate the results.
https://www.google.com/webhp?complete=1&hl=en
Gmail
Gmail is a webmail built on the idea that emails can be more intuitive, efficient, and useful.
https://gmail.com/
https://maps.yahoo.com/
https://www.tutorialspoint.com/cgi-bin/printpage.cgi 2/14
3/11/2019 AJAX Quick Guide
Try these two examples one by one and you will feel the difference. While trying AJAX example, there is no
discontinuity and you get the response very quickly, but when you try the standard GCI example, you would have
to wait for the response and your page also gets refreshed.
AJAX Example
* =
Standard Example
* =
When you write your next application, do consider the browsers that do not support AJAX.
NOTE − When we say that a browser does not support AJAX, it simply means that the browser does not support
the creation of Javascript object – XMLHttpRequest object.
<html>
<body>
<script language = "javascript" type = "text/javascript">
<!--
//Browser Support Code
function ajaxFunction() {
var ajaxRequest; // The variable that makes Ajax possible!
try {
// Opera 8.0+, Firefox, Safari
ajaxRequest = new XMLHttpRequest();
} catch (e) {
https://www.tutorialspoint.com/cgi-bin/printpage.cgi 3/14
3/11/2019 AJAX Quick Guide
try {
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
</body>
</html>
In the above JavaScript code, we try three times to make our XMLHttpRequest object. Our first attempt −
It is for Opera 8.0+, Firefox, and Safari browsers. If it fails, we try two more times to make the correct object for
an Internet Explorer browser with −
If it doesn't work, then we can use a very outdated browser that doesn't support XMLHttpRequest, which also
means it doesn't support AJAX.
Most likely though, our variable ajaxRequest will now be set to whatever XMLHttpRequest standard the browser
uses and we can start sending data to the server. The step-wise AJAX workflow is explained in the next chapter.
AJAX - ACTION
This chapter gives you a clear picture of the exact steps of AJAX operation.
https://www.tutorialspoint.com/cgi-bin/printpage.cgi 4/14
3/11/2019 AJAX Quick Guide
Example − validateUserId JavaScript function is mapped as an event handler to an onkeyup event on input
form field whose id is set to "userid"
<input type = "text" size = "20" id = "userid" name = "id" onkeyup = "validateUserId;">.
try {
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
function validateUserId() {
ajaxFunction();
https://www.tutorialspoint.com/cgi-bin/printpage.cgi 5/14
3/11/2019 AJAX Quick Guide
function validateUserId() {
ajaxFunction();
Assume you enter Zara in the userid box, then in the above request, the URL is set to "validate?id = Zara".
If we assume that you are going to write a servlet, then here is the piece of code.
https://www.tutorialspoint.com/cgi-bin/printpage.cgi 6/14
3/11/2019 AJAX Quick Guide
The XMLHttpRequest object was configured to call the processRequest function when there is a state change to
the readyState of the XMLHttpRequest object. Now this function will receive the result from the server and will
do the required processing. As in the following example, it sets a variable message on true or false based on the
returned value from the Webserver.
function processRequest() {
if (req.readyState == 4) {
if (req.status == 200) {
var message = ...;
...
}
document.getElementById("userIdMessage"),
// where "userIdMessage" is the ID attribute
// of an element appearing in the HTML document
JavaScript may now be used to modify the element's attributes; modify the element's style properties; or
add, remove, or modify the child elements. Here is an example −
if (message == "false") {
userMessageElement.style.color = "red";
messageText = "Invalid User Id";
} else {
userMessageElement.style.color = "green";
messageText = "Valid User Id";
}
https://www.tutorialspoint.com/cgi-bin/printpage.cgi 7/14
3/11/2019 AJAX Quick Guide
<body>
<div id = "userIdMessage"><div>
</body>
If you have understood the above-mentioned seven steps, then you are almost done with AJAX. In the next
chapter, we will see XMLHttpRequest object in more detail.
AJAX - XMLHTTPREQUEST
The XMLHttpRequest object is the key to AJAX. It has been available ever since Internet Explorer 5.5 was
released in July 2000, but was not fully discovered until AJAX and Web 2.0 in 2005 became popular.
XMLHttpRequest XH R is an API that can be used by JavaScript, JScript, VBScript, and other web browser
scripting languages to transfer and manipulate XML data to and from a webserver using HTTP, establishing an
independent connection channel between a webpage's Client-Side and Server-Side.
The data returned from XMLHttpRequest calls will often be provided by back-end databases. Besides XML,
XMLHttpRequest can be used to fetch data in other formats, e.g. JSON or even plain text.
You already have seen a couple of examples on how to create an XMLHttpRequest object.
Listed below are some of the methods and properties that you have to get familiar with.
XMLHttpRequest Methods
abort
getAllResponseHeaders
getResponseHeaderheaderN ame
openmethod, U RL
The method parameter can have a value of "GET", "POST", or "HEAD". Other HTTP methods such as
"PUT" and "DELETE" primarilyusedinRES T applications may be possible.
The "async" parameter specifies whether the request should be handled asynchronously or not. "true"
means that the script processing carries on after the send method without waiting for a response, and
"false" means that the script waits for a response before continuing script processing.
sendcontent
https://www.tutorialspoint.com/cgi-bin/printpage.cgi 8/14
3/11/2019 AJAX Quick Guide
setRequestHeaderlabel, value
XMLHttpRequest Properties
onreadystatechange
readyState
The readyState property defines the current state of the XMLHttpRequest object.
The following table provides a list of the possible values for the readyState property −
State Description
readyState = 0 After you have created the XMLHttpRequest object, but before you have called the open method.
readyState = 1 After you have called the open method, but before you have called send.
readyState = 3 After the browser has established a communication with the server, but before the server has
completed the response.
readyState = 4 After the request has been completed, and the response data has been completely received from
the server.
responseText
responseXML
Returns the response as XML. This property returns an XML document object, which can be examined and
parsed using the W3C DOM node tree methods and properties.
status
https://www.tutorialspoint.com/cgi-bin/printpage.cgi 9/14
3/11/2019 AJAX Quick Guide
Returns the status as a number e. g. , 404f or " N otF ound " and200f or " OK " .
statusText
Returns the status as a string e. g. , " N otF ound " or " OK " .
NOTE − We are assuming you have sufficient privilege to perform the following MySQL operations.
Now dump the following data into this table using the following SQL statements −
<html>
<body>
<script language = "javascript" type = "text/javascript">
<!--
//Browser Support Code
function ajaxFunction() {
var ajaxRequest; // The variable that makes Ajax possible!
try {
// Opera 8.0+, Firefox, Safari
ajaxRequest = new XMLHttpRequest();
} catch (e) {
try {
https://www.tutorialspoint.com/cgi-bin/printpage.cgi 10/14
3/11/2019 AJAX Quick Guide
if(ajaxRequest.readyState == 4) {
var ajaxDisplay = document.getElementById('ajaxDiv');
ajaxDisplay.innerHTML = ajaxRequest.responseText;
}
}
<select id = 'sex'>
<option value = "m">m</option>
<option value = "f">f</option>
</select>
NOTE − The way of passing variables in the Query is according to HTTP standard and have formA.
https://www.tutorialspoint.com/cgi-bin/printpage.cgi 11/14
3/11/2019 AJAX Quick Guide
Max Age:
Max WPM:
Sex: m
Your result will display here in this section after you have made your entry.
<?php
$dbhost = "localhost";
$dbuser = "dbusername";
$dbpass = "dbpassword";
$dbname = "dbname";
//Select Database
mysql_select_db($dbname) or die(mysql_error());
//build query
$query = "SELECT * FROM ajax_example WHERE sex = '$sex'";
if(is_numeric($age))
$query .= " AND age <= $age";
if(is_numeric($wpm))
$query .= " AND wpm <= $wpm";
//Execute query
$qry_result = mysql_query($query) or die(mysql_error());
https://www.tutorialspoint.com/cgi-bin/printpage.cgi 12/14
3/11/2019 AJAX Quick Guide
$display_string .= "<th>Age</th>";
$display_string .= "<th>Sex</th>";
$display_string .= "<th>WPM</th>";
$display_string .= "</tr>";
echo $display_string;
?>
Now try by entering a valid value e. g. , 120 in Max Age or any other box and then click Query MySQL button.
Max Age:
Max WPM:
Sex: m
Your result will display here in this section after you have made your entry.
If you have successfully completed this lesson, then you know how to use MySQL, PHP, HTML, and Javascript in
tandem to write AJAX applications.
AJAX - SECURITY
AJAX Security: Server Side
AJAX-based Web applications use the same server-side security schemes of regular Web applications.
You specify authentication, authorization, and data protection requirements in your web.xml file
declarative or in your program programmatic.
AJAX-based Web applications are subject to the same security threats as regular Web applications.
JavaScript code is downloaded from the server and executed " eval " at the client and can compromise the
client by mal-intended code.
https://www.tutorialspoint.com/cgi-bin/printpage.cgi 13/14
3/11/2019 AJAX Quick Guide
Downloaded JavaScript code is constrained by the sand-box security model and can be relaxed for signed
JavaScript.
Complexity is increased
Server-side developers will need to understand that presentation logic will be required in the HTML client
pages as well as in the server-side logic.
https://www.tutorialspoint.com/cgi-bin/printpage.cgi 14/14