AJAX is the short name of Asynchronous JavaScript and XML and basically it is a pack of techniques frequently used in web applications on the client side. The main thing of AJAX is that some web apps can be used to get data from a server in an asynchronous way without interfering with the main page. Thanks to AJAX the JavaScript language has been pushed up, but even though the name may mislead the user, AJAX doesn’t need JavaScript or XML and furthermore, the requests to the server don’t need to be asynchronous.
AJAX is not a technology, it is a pack of them altogether, and it is formed by HTML and CSS to style and mark up the information. DOM is used to display the information presented. The method to exchange data is XHR typically but it can also be used IFrame or any other script. The format to send data to the browser is typically XML, HTML or JSON.
Although JavaScript is by far the most popular scripting language used in AJAX it is not necessary to do so, for example VBScript may be used instead with the same functionality, but as JavaScript is very popular among browsers, it is the chosen by more than 9 out of 10 programmer when using AJAX.
The main advantage of AJAX is that usually most of the content of a website is repeated in a lot of pages. With the usual methods used, the content has to be loaded again in every request done by the user or the server. With AJAX only the content which needs to be updated is requested and so, the load time and bandwidth usage is dramatically reduced. With the asynchronous requests, the user will have the perception that the application is faster than with traditional methods and the server has fewer requests, needing less CPU than traditional methods.
However, not everything is good in AJAX. The first thing is that it is more difficult and time consuming than static methods. Although the server will work better in a dynamic environment than a static one, sometimes it is not worth of the hassle to use AJAX. Another drawback is that JavaScript can be disabled and some browsers have JavaScript disabled by default or do not support it. Some crawlers are not able to index content in AJAX and this is quite a problem if the page is intended for SEO.
There are some frameworks named AJAX Frameworks which are mainly developed to be used in conjunction with AJAX. These frameworks are typically used by programmers to make their work easier, as AJAX is not a very easy to use technique. They can be direct or indirect depending on the features offered and the skills required. Direct Frameworks use AJAX directly while indirect AJAX frameworks use another high level language and then a compiler turns the code to JavaScript to be run with AJAX techniques. This second method is more used and it is more flexible than the direct method.

