Docstoc

AJAX AJAX AJAX Asynchronous JavaScript

Document Sample
AJAX AJAX AJAX Asynchronous JavaScript Powered By Docstoc
					AJAX

                   AJAX = Asynchronous JavaScript and XML.

                   AJAX is based on JavaScript and HTTP requests.

                   AJAX is a type of programming made popular in 2005 by Google
                   (with Google Suggest).

                   AJAX is not a new programming language, but a new way to use
                   existing standards.




What you should already know
Before you continue you should have a basic understanding of the following:

      HTML / XHTML
      JavaScript

If you want to study these subjects first, find the tutorials on our Home page.



AJAX = Asynchronous JavaScript and XML
AJAX is not a new programming language, but a new technique for creating better,
faster, and more interactive web applications.

With AJAX, a JavaScript can communicate directly with the server, with the
XMLHttpRequest object. With this object, a JavaScript can trade data with a web
server, without reloading the page.

AJAX uses asynchronous data transfer (HTTP requests) between the browser and the
web server, allowing web pages to request small bits of information from the server
instead of whole pages.

The AJAX technique makes Internet applications smaller, faster and more user-friendly.
AJAX is based on Internet standards
AJAX is based on the following web standards:

      JavaScript
      XML
      HTML
      CSS

   AJAX applications are browser- and platform-independent.



AJAX is about better Internet-applications
Internet-applications have many benefits over desktop applications; they can reach a
larger audience, they are easier to install and support, and easier to develop.

However, Internet-applications are not always as "rich" and user-friendly as traditional
desktop applications.

With AJAX, Internet applications can be made richer and more user-friendly.



Start using AJAX today
There is nothing new to learn.

AJAX is based on existing standards. These standards have been used by developers for
several years.




AJAX uses the XMLHttpRequest object
To get or send information from/to a database or a file on the server with traditional
JavaScript, you will have to make an HTML form, and a user will have to click the
"Submit" button to send/get the information, wait for the server to respond, then a new
page will load with the results. Because the server returns a new page each time the user
submits input, traditional web applications can run slowly and tend to be less user-
friendly.

With AJAX, your JavaScript communicates directly with the server, through the
JavaScript XMLHttpRequest object.
With the XMLHttpRequest object, a web page can make a request to, and get a response
from a web server - without reloading the page. The user will stay on the same page, and
he or she will not notice that scripts request pages, or send data to a server in the
background.



The XMLHttpRequest object

By using the XMLHttpRequest object, a web developer can update a page with data
from the server after the page has loaded!

AJAX was made popular in 2005 by Google (with Google Suggest).

Google Suggest is using the XMLHttpRequest object to create a very dynamic web
interface: When you start typing in Google's search box, a JavaScript sends the letters off
to a server and the server returns a list of suggestions.

The XMLHttpRequest object is supported in all major browsers (Internet Explorer,
Firefox, Chrome, Opera, and Safari).




Your first AJAX application
To understand how AJAX works, we will create a small AJAX application.

First we are going to create a standard HTML form with two input fields: Name and
Time. The "Name" field will be filled out by the user, and the "Time" field will be filled
out with AJAX.

The HTML file will be named "testAjax.htm", and it looks like this (notice that the
HTML form below has no submit button!):

<html>
<body>

<form name="myForm">
Name: <input type="text" name="username" />
Time: <input type="text" name="time" />
</form>

</body>
</html>
The next chapters will explain the keystones of AJAX.




AJAX - Browser support
The keystone of AJAX is the XMLHttpRequest object.

All new browsers use the built-in JavaScript XMLHttpRequest object to create an
XMLHttpRequest object (IE5 and IE6 uses an ActiveXObject).

Let's update our "testAjax.htm" file with a JavaScript that creates an XMLHttpRequest
object:

<html>
<body>

<script type="text/javascript">
function ajaxFunction()
{
var xmlhttp;
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else if (window.ActiveXObject)
  {
  // code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
else
  {
  alert("Your browser does not support XMLHTTP!");
  }
}
</script>

<form name="myForm">
Name: <input type="text" name="username" />
Time: <input type="text" name="time" />
</form>

</body>
</html>
Example explained

1. Create a variable named xmlhttp to hold the XMLHttpRequest object.

2. Try to create the XMLHttpRequest object with xmlhttp=new XMLHttpRequest().

3. If that fails, try xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"). This is for IE6
and IE5.

4. If that fails too, the user has a very outdated browser, and will get an alert stating that
the browser doesn't support XMLHTTP.

Note: The code above can be used every time you need to create an XMLHttpRequest
object, so just copy and paste it whenever you need it.

The next chapter shows how to use the XMLHttpRequest object to communicate with a
server.




AJAX - More about the XMLHttpRequest object
Before sending data off to a server, we will look at three important properties of the
XMLHttpRequest object.



The onreadystatechange property
After a request to a server, we need a function to receive the data returned from the
server.

The onreadystatechange property stores the function that will process the response from a
server. The function is stored in the property to be called automatically.

The following code sets the onreadystatechange property and stores an empty function
inside it:

xmlhttp.onreadystatechange=function()
{
// We are going to write some code here
}
The readyState property
The readyState property holds the status of the server's response.

Each time the readyState property changes, the onreadystatechange function will be
executed.

Possible values for the readyState property:

State    Description
0        The request is not initialized
1        The request has been set up
2        The request has been sent
3        The request is in process
4        The request is complete

Add an If statement to the onreadystatechange function to test if the response is complete
(means that now we can get our data):

xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4)
  {
  // Get data from the server's response
  }
}



The responseText property

The data sent back from a server can be retrieved with the responseText property.

Now, we want to set the value of the "Time" input field equal to responseText:

xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4)
  {
  document.myForm.time.value=xmlhttp.responseText;
  }
}

The next chapter shows how to ask a server for data!
AJAX - Sending a request to a server
To send off a request to the server, we use the open() and send() methods.

The open() method takes three arguments. The first argument defines which method to
use when sending the request (GET or POST). The second argument specifies the URL
of the server-side script. The third argument specifies that the request should be handled
asynchronously.

The send() method sends the request off to the server. If we assume that the HTML and
ASP file are in the same directory, the code would be:

xmlhttp.open("GET","time.asp",true);
xmlhttp.send(null);

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:25
posted:5/12/2012
language:English
pages:7