A passionate discussion from today.
Developer 1: “AJAX is a set of tools,
use it where it really helps, not just
for the sake of it.”Developer 2: “Its almost 2011, we can
build rich desktop like applications
in the browser, we should use AJAX
everywhere and make a single page
application with everything in it an
AJAX powered component.”
I can understand things so far. Here’s where I don’t get it.
Developer 1: “Using AJAX to make a
single page app, we will have to write
our own code to manage bookmarking and
browser back forward buttons”Developer 2: “No problem, that’s
easily doable. It’s worth it because
AJAX solves the problems we had with
normal GET/POST, the statelessness.
With a one page AJAX app, you can
maintain context, you don’t need
hidden variables, heavy session
management as you would when you moved
between pages”
Is Dev 2 right? Has AJAX really solved problems with how the ‘web’ normally works?
No.
First of all, there’s no problem with how the Web works. It was designed to be stateless, and even with a single page AJAX app, the Web is still stateless.
The problem is with how Developers approach managing state in the stateless environment of the web. Single page AJAX applications definitely make managing state much easier for developers (actually, it sidesteps the problem entirely) that are used to being able to manage state easily in a desktop application.
Just remember, though, that if you have a single page AJAX application and you forget to send the state back to the server for persistence, you lose it…
In my personal opinion, single page AJAX applications also have code management/readability/maintainability issues that far outweigh the state management benefits. I’d rather learn how to properly pass state from page to page in my application that deal with the headache of a single page that contains all of my code.