How much AJAX is enough?

17 June 2008 09:07

I've actually started this post three or four seperate times, but each time I've decided that it might sound too much like a design rant for something out of my control--or that I might have an amateurish understanding of good design.  This time, however, I've decided that documenting my thoughts might spark some discussion, and that my ego can probably take some constructive criticism.  So here it is: 

A couple of questions keep coming up in my work, so I thought I'd take a moment to document them, and possibly get some feedback.  My main project makes use of the Tab Panel extender from the ASP.Net Control Extensions Toolkit, and simultaneously displays about a half dozen tabs with unrelated functionality.  Each of the tabs holds a different user control, each of which is pretty heavy in terms of the amount of data displayed in them.

The problem is that populating each of them at page load incurs quite a bit of overhead--the application is very slow to start.  The client has dictated that through the whole application, there should be no apparent postbacks.  I've tried a few things to remedy the slow loading times, including dynamically loading the user controls, putting some script in place with cascading timers to "delay load" the controls, and so forth.  Unfortunately, I came late to this application, and there's quite a bit of scripting already in place that doesn't seem to work when I take either of those approaches.  I know what really should be done is a critical evaluation of the application--and further development is simply adding to the overhead, but a few thoughts keep nagging me. 

First, where should AJAX-y features actually be applied?  To insist that the whole application should work without any noticeable postback seems a bit incongruous with the whole idea of a web application--if we "never ever" want to see postbacks, wouldn't the whole thing be better done with something such as Flash or Silverlight?

Second, if the whole application works in this manner, what happens when this mentality is taken to a truly public facing site, in terms of bookmarking pages, search engine listing of individual pages, etc.? 

Third, when I look around the web and find sites that are deeply AJAX-ified, one thing I notice is that any given part of the site is actually pretty small--the payload of the whole thing might be around the size of one of the afore mentioned user controls in my client's application.  Another thing I notice is that within a given area of functionality, the UI might make use of quite a bit of AJAX type functionality--but when it comes to changing from one functional area to another, postbacks are a given.

Outside the realm of my client's project, where I was assigned well after the design was in place, these questions keep coming up for me, just thinking about good architecture, good layout, (good code),  and a good user experience--both for this client, and for a personal project or two that I have.

Ok, now that all of that is said, what's the answer?

 

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2024 Jim Moore