Learn JavaScript Day 9: JavaScript and AJAX
Welcome to Day 9 of our JavaScript tutorial series! Today, we will explore AJAX and how it can be used to dynamically update web pages.
AJAX, short for Asynchronous JavaScript and XML, is a technique used to update parts of a web page without requiring a full page reload. This technique is used by many popular websites like Google Maps, Gmail, and Twitter, to provide a seamless user experience.
In this tutorial, we will learn how to use JavaScript and AJAX to send and receive data asynchronously. We will cover the basics of AJAX and how to make AJAX requests using the XMLHttpRequest object. We will also explore how to handle AJAX responses and update the page content dynamically.
Understanding AJAX
Before we dive into the code, let’s take a moment to understand what AJAX is and how it works. AJAX allows web pages to send and receive data asynchronously, without requiring a full page reload. This means that parts of the web page can be updated without interrupting the user’s experience.
To use AJAX, we need to make a request to a server to fetch or send data. This request is made using the XMLHttpRequest object, which is built into most modern web browsers.
Making AJAX Requests
To make an AJAX request, we first need to create an instance of the XMLHttpRequest object. We can then use this object to make a request to the server and receive a response.
Here’s an example of how to make a simple AJAX request:
const xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
// handle response
}
};
xhttp.open("GET", "https://api.example.com/data", true);
xhttp.send();
In this example, we create a new instance of the XMLHttpRequest object and set a callback function to handle the response. We then open a connection to the server using the open()
method and send the request using the send()
method.
Handling AJAX Responses
Once we have made an AJAX request, we need to handle the response from the server. This is done by checking the readyState
and status
properties of the XMLHttpRequest object.
Here’s an example of how to handle an AJAX response:
const xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
const response = JSON.parse(this.responseText);
// update page content
}
};
xhttp.open("GET", "https://api.example.com/data", true);
xhttp.send();
In this example, we check the readyState
and status
properties of the XMLHttpRequest object to ensure that the response has been received successfully. We then parse the response using the JSON.parse()
method and update the page content with the new data.
Updating Page Content Dynamically
One of the main benefits of AJAX is the ability to update page content dynamically without requiring a full page reload. To do this, we can use the innerHTML
property of an HTML element to update its content.
Here’s an example of how to update page content dynamically using AJAX:
const xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
const response = JSON.parse(this.responseText);
document.getElementById("content").innerHTML = response.data;
}
};
xhttp.open("GET", "https://api.example.com/data", true);
xhttp.send();
In this example, we use the getElementById()
method to select an HTML element with the ID content
. We then update the content of this element using the innerHTML
property and the data received from the AJAX request.
With AJAX, we can also send data to a server asynchronously. To do this, we use the XMLHttpRequest open() and send() methods. The open() method initializes a new request, and the send() method sends the request to the server. Here is an example of sending data using AJAX:
let xhr = new XMLHttpRequest();
let url = "https://example.com/data";
let data = JSON.stringify({"name": "D", "age": 25});
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send(data);
In this example, we create a new XMLHttpRequest object and specify the URL of the server we want to send data to. We then convert the data we want to send to a JSON string using the JSON.stringify() method. We use the open() method to initialize a new request and the send() method to send the data to the server.
AJAX is a powerful tool that allows web developers to create dynamic and responsive web pages. By using JavaScript and AJAX, we can update parts of a web page without reloading the entire page, which makes for a better user experience.
In this tutorial, we’ve learned about the basics of AJAX and how to use JavaScript and AJAX to dynamically update web pages. We’ve covered how to send and receive data using AJAX, and we’ve seen examples of how AJAX can be used to improve the user experience of a web page.
We encourage you to continue your learning journey with AJAX by exploring the many resources available online. You can start by visiting the Mozilla Developer Network, where you’ll find a wealth of information on AJAX and other web development topics.
Thank you for joining us on Day 9 of our JavaScript tutorial series. We hope you’ve found this tutorial helpful and informative, and we look forward to seeing you in the next one.
Read more about AJAX on MDN and Access full JavaScript series here