Everything has its own merits and demerits, Ajax included.
The application seems to become more responsive and interactive
as the user gets the response without clicking any buttons.
In classic web application, when the web server responds to the
web browser with a new page, it may make use of multiple connection threads in
order to speed up the process, but this happens for the content only (which is
between <body> tags). The CSS as well as the script files present in the
head section are transferred using only one connection thread which results in
performance degradation. With Ajax, it is required to load only the basic script
and CSS files. Rests are requested as content using multiple connections.
A big advantage is that the user is not required to keep on
waiting and waiting.
One more important merit is traffic to and from the server is
reduced a considerable amount.
If a section of a page encounters any error, other sections do
not get affected and the data entered by the user is also not lost.
Ajax application development may lead to increase in development
time and cost.
The biggest concern is accessibility because all browsers do not
Using Ajax to asynchronously load bits of data into the existing
page conflicts the way the users are used to viewing, navigating and creating
bookmarks in a modern browser.
Another disadvantage lies in the xmlHttpRequest object itself
because one can use it to access information from the host that served the
“initial page” (due to security reasons).