There is something of a “Wild West” atmosphere in high technology, and it is nowhere more apparent than in the constantly churning world of programming and programmers. With a tool like AJAX – shorthand for asynchronous JavaScript and XML, it allows Web applications to retrieve data from servers in the background without the viewed page being otherwise affected – it has become easier for people to create “little helpers” for their Rich Internet Applications (RIAs).

The vocabulary is a little loose, if not altogether vague, as different people refer to the same AJAX aids as “gadgets,” “widgets,” “patterns” and other such terms. For some, a “gadget” is a visible, purposely used tool, whereas other users apply the term to AJAX wherever it is found and however it is deployed. There are huge numbers of gadgets and “helperdelpers” available, but one area where no one ever turns down help is optimizing performance, so we’ll start there.

Performance Optimization
The general idea behind “Web performance” is to create as rich an environment (we’re talking RIA, Rich Internet Applications, after all) as possible with the least amount of muss, fuss, content and time to do the job. Efficiency and “just on time delivery” are as (or more) important here than in any manufacturing environment. Sensibly, then, the Fat Client pattern helps you create a rich, browser-based client that performs remote calls only if the desired effect cannot be done in the browser. Other performance aids include:

* Browser-Side Cache, which creates and maintains a local information cache;

* Guesstimate, a gadget that “guesses” download figures between the scheduled calls retrieving actual results (as done with the iTunes Download Counter and GMail Storage Counter);

* Multi-Stage Download, for quickly downloading page structures with standard requests then “populating it” with additional ones;

* On-Demand JavaScript, which downloads JavaScript as needed, rather than all on the original page load; and many, many others.

Besides these, another major area of concern for all Web site strategists is content. Take away all the theme music and fireworks – and the various flashes in various pans – and what you have on the Internet is content. There are two kinds of content: (1) the kind that people read and use, and (2) all the rest.

Content Gadgets/Widgets
One self-described “code warrior” with a Web site devoted to AJAX tools calls them “widget patterns.” The following content-related gadgets/widgets should be familiar to veteran computer users, since similar functionality has been available in desktop GUIs and applications. These examples display the interactivity that is becoming more and more common in AJAX applications, especially the sorts that benefit from XMLHttpRequest-driven interaction.

* Drilldown assists the user in locating an item within a hierarchy with a dynamic drilldown.

* Microcontent lets site designers compose pages with “blocks,” small amounts of content that are edited right on/in the page;

* Microlinks, as its name suggests, creates links, but special ones that open and/or display new content on existing pages instead of loading new pages; and

* Popup Support empowers users to do simple, swift tasks and lookups by displaying transient blocks of content “in front” or “on top of” existing content.

Form Patterns and Search Widgets
Because of the nature of the “AJAX advantage,” much of which has to do with its ability to facilitate updates and stay abreast of changing data and events, it is employed for reports, searches and form submission. Some of the best, most popular gadgets of this kind include:

* Live Form, which validates and modifies forms during entire sessions, rather than awaiting explicit submission commands;

* Live Search continuously displays all valid results as users refine their search queries;

* Data Grid can report on data located in a rich table, with support for the common queries and functions;

* Suggestion, a tool that will offer up words and/or phrases that will potentially complete what users are typing;

and many others. In this group would go the Progress Indicator gadget, which gives visual hints that processing is occurring, as well as Slider, a simple and effective tool for allowing end-users a choice of values with specified ranges.

Page Structure and Visual Effects
AJAX allows Web site designers to add structural elements, visual effects and timesavers to their pages, too. The following tools benefit users through increased customizing and decreased hassle:

* Drag-And-Drop provides a drag/drop ability so users can straightforwardly rearrange page elements;
* Sprite is a gadget that augments page display with “sprites,” flexible and small blocks containing content; and
* Virtual Workspace, which offers a browser-side view of a server-side “workspace” and lets users navigate the space as a local one.

There is virtually no limit on the imagination, so there is virtually none on the creation of AJAX widgets, gadgets, patterns or what-have-you. Especially in the area of Productivity, you will find a lot going on with AJAX, so bookmark a favorite site or blogger that covers the field (or two, or three) so you can stay abreast of all the progress without being immersed in it 24/7. Some top functionality gadgets include:

* Lazy Registration, which collects bits and pieces of information about users as they interact with your site (with a subsequent “formal” registration later);
* Direct Login enables you to authenticate users with XMLHttpRequest Calls rather than form-based submissions, hashing in the browser for enhanced security; and
* Autosave, which automatically saves un-validated forms to a “staging table” on a server, thus preventing users from losing their work when sessions expire – while they’re away from their desks, involved with another task, on the phone or what-have-you.

Avion Technology, Inc.
Web design and development

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>