In my role as a customer experience consultant (with Tealeaf), I get to research many types of web sites built by a variety of organizations. Focusing on usability issues, I get to analyze web site implementations where the use of AJAX is a big factor today. Alas, too many sites have gone wild and crazy and deliver too much AJAX.
Back in the old Web 1.0 world of ten years ago, developers broke business processes into nice, consumable chunks called pages. It was easy to break down a business form into nice logical pieces that were easy to implement and easy for customers to understand. For example:
- A loan application. You filled out your personal information on one page, next your financial, next your employment, and finally a confirmation page.
- Buying a product. A search page, product description, shopping cart, and purchase pages.
- Booking a hotel. Enter your travel dates, desired location, search, select, and purchase.
All nice and logical, right? The greatest part is that the sites are easy to support as well as functional. If a form needed fixing or page need tweaking, you only had to troubleshoot that page in the process. Making changes and rolling them out was not that complex or earth-shattering. Life cycle management of Web 1.0 sites was reasonable, easy, and cost-effective.
But the introduction of too much AJAX now replaces this easy life cycle with complex, insupportable models. The worst is the insurance industry. They seem infatuated with taking very complex, ten page processes and slamming them into one page AJAX nightmares. In order to debug a problem on the eighth end user page, the developer has to start at the first page, enter in pages of test data just to get to the eight page. What used to take 10 seconds to test now takes minutes. Over and over again. And we haven’t gotten this into the user’s hand yet! Ouch!
Now try compound all this client-side AJAX in all the tablets, phones, and laptops coming out. Yikes! To me it seems like a plot by the consulting and design firms to keep fat support contracts to support all this spaghetti code. Yuck. Too much AJAX.
Thank goodness some sanity is out there. Retail sites seem to get it and avoid too much AJAX. Also, the new design models based on HTML5 and Responsive Design appear to lead the next generation back into supportable design models, with simpler code implementation and avoiding the too much AJAX applications that have 80 JavaScript files to build a business process in the browser.
Best Practices
In my travels with my customers, I’ve come to understand where AJAX in a page makes sense. Here are just a few:
- Vehicle look-up. When I pull down a menu, an AJAX call fills it with only the cars I need.
- Search terms as I type. As I type “laptop”, the search bar autofills other searches to save me time.
- Content display as I navigate. As I interact on the page, content appears or pops up that is relevant to me. AJAX calls make this possible, improving my customer experience.
- Inventory checks. On the same product page, knowing it is really in stock is very helpful. Ditto for shipping charges and taxes.
- Filtering choices. As I select certain dates, only the Hotels with openings are listed, as I filter on brands, the page refreshes with content.
Using AJAX, just the right amount, makes for a wonderful site experience. Hopefully the mobile and tablet evolution will return us to the middle, blending the best of web 1.0 and web 2.0, giving us sites that are:
- Sexy interfaces that are fun to use
- Easy for developer’s to troubleshoot and support
- Leveraging the devices that I want to use
- Keeping support costs down