AJAX

ASYNCHRONOUS JAVASCRIPT AND XML

Introduction To AJAX

A Technique or a Way which uses a group of technologies for creating fast and dynamic web pages.

AJAX is combination of three technologies

JavaScript

XMLHttp Request

XML or JSON

JAVASCRIPT ---

Client side scripting language.

Created by MR. Brendan Eich in May, 1995.

JavaScript is the backbone for AJAX

XMLHttpRequest ---

JavaScript object for sending HTTP request to server and get response from server behind the scene.

Introduced by Microsoft in 1998.

Old versions of IE ( IE5 and IE6) uses ActiveX object.

XML OR JSON ---

XML is a software- and hardware-independent tool for storing and transporting data.

Need of AJAX

In classic web application, there were only static web pages or dynamic pages with lesser functionalities

But as the technology speeds up with time desktop applications were moving to web applications.

At that time it was very costly to build applications in classic web architecture which consists of synchronous behavior as well as time consuming (response is very slow if user makes any request) so this methodology was introduced.

Working of AJAX

User sends a request from the UI and a JavaScript call goes to XMLHttpRequest object.

HTTP Request is sent to the server by XMLHttpRequest object.

Server interacts with the database using any server side scripting.

Data is retrieved.

Server sends XML data or JSON data to the XMLHttpRequest callback function.

HTML and CSS data is displayed on the browser.

Classic V/S AJAX

Synchronous V/S Asynchronous

Synchronous(Before Ajax)

Asynchronous

HOW TO MAKE AJAX REQUEST

Create an object

if (window. XMLHttpRequest)

{

// Mozilla, Safari, IE7+ ...

httpRequest = new XMLHttpRequest();

}

else if (window.ActiveXObject)

{

// IE 6 and older

httpRequest = new ActiveXObject("Microsoft.XMLHTTP");

}

Connection to server and request making

Get Request –

httpRequest . open ( 'GET‘, 'http://www.example.org/some.file', true);

httpRequest . send( null );

Post Request –

httpRequest .Open ( "POST", "ajax_test.asp", true);httpRequest. setRequestHeader ( "Content-type", "application/x-www-form-urlencoded");httpRequest . Send ("fname=Henry&lname=Ford");

Handle Response From the Server

For Asynchronous Requests.

httpRequest . onreadystatechange = function ()

{

if ( httpRequest .readyState == 4 && httpRequest .status == 200)

{

DemoFunc(httpRequest );

}

}

For Synchronous request

Document . getElementById ("demo").innerHTML = httpRequest .responseText;

Properties of XMLHttpRequest

XMLHttpRequest. readyState ---

Returns an unsigned short, the state of the request.

XMLHttpRequest. Onreadystatechange ---

An Event Handler that is called whenever the readyState attribute changes.

XMLHttpRequest . status

Returns an unsigned short with the status of the response of the request.

XMLHttpRequest . statusText

Returns a DOMString containing the response string returned by the HTTP server. Unlike XMLHTTPRequest.status, this includes the entire text of the response message ("200 OK", for example).

XMLHttpRequest.timeout

Is an unsigned long representing the number of milliseconds a request can take before automatically being terminated.

Methods of XMLHttpRequest

XMLHttpRequest. Open –

Initializes a request. This method is to be used from JavaScript code; to initialize a request from native code, use openRequest() instead.

XMLHttpRequest. Send –

Sends the request.

XMLHttpRequest.setRequestHeader

Sets the value of an HTTP request header. You must call setRequestHeader()after open(), but before send().

Benefits of AJAX

Response time is faster so increases performance and speed.

No require to completely reload page again. AJAX is improve the speed and performance. Fetching data from database and storing data into database perform background without reloading page.

Real Life Examples

Google maps

https://maps.google.com

Google Suggest

https://google.com/

Gmail

https://gmail.com

In Google Mail

First they show you the inbox, then in the background they use a POST request and load all your mail messages ( the mail body ) in as a JSON.

That is how they are able to let you jump instantaneously from your inbox to your mail messages without any delay.

Leave a Reply