When Twitter went to an all-AJAX UI, I cheered that, especially the first real use of AJAX SEO, but I also questioned it. As a front end developer it was great for me to point to as an example of what could be done now and in the future. But I honestly didn’t understand why Twitter did that, since I don’t see Twitter as a web application — it’s content, like a newspaper, and really should be delivered by server.
In my perspective, there are two basic designs for web development:
- Gmail or Google maps would be the prime examples. Google Search would now be considered an app as well.
- The server is used only for data and provides APIs. While that API may return JSON, it really should return anything that the client requests. If the client wants a comma delineated list, the server should be able to convert its output on demand.
- Typically, web apps do not use SEO and do not have ads.
- You can make ads work on an ajaxified page, but this may require some extra knowledge on how the ad network accepts requests, and then you may need to hack the embed code they provide. Google Search can do it because they control the ads. In other words, it’s something that really needs to be considered before you build it.
- A blog or a news site would be an example
- Should be server heavy and serve pages for SEO and ads, and should be JS light, since that JS needs to load on every new page.
There are variations of the two, like Facebook, which has a lot of pages and is AJAX-heavy.
A web app should be a single page for a reason. The back end should focus on data, business logic, and workflow. If it’s a complex UI that can put a significant burden on their code. What if there are tabs within tabs? Don’t forget to maintain the browser history. That Back button needs to work.
When Club AJAX was first launched, it used AJAX to load the pages. This didn’t work very well for SEO, and there was no easy way to include ads (not that I ever wanted ads… Bob!). The site also wasn’t easily expandable. For all its warts, WordPress, with discrete pages, was really the way to go.
Web development is evolving to be more client-side oriented. But even in cases of server-heavy sites, the front end developer needs to be more involved in the design and architecture. They tend to bring a more user-focused point of view to the project while back end devs tend to bring a more data-centric point of view.