Blog

SEARCH

About There4

I build simple, clean, and maintainable internet applications. People should never need an owners manual to use software, I believe that applications can be easy to use while still being powerful. Applications should remain valuable through their entire lifespans, and should be flexible enough to grow and change as requirements shift.

I prefer to develop with Blueprint CSS, jQuery, and Cake PHP. I have extensive development history with PHP, MySQL, Microsoft SQL, and mixed Win32/Linux hosting environments.

Follow me on Twitter

Posting tweet...

AJAX interaction indications and timers

Posted in: Blog, JavaScript, UX by Craig Davis on November 14, 2009

I believe that AJAX interactions are still new enough that customers can have a difficult time knowing what to expect from them. I recently completed an interface where we were using jQuery to create and manage lists. In this list interface, we ran into some interesting assumptions that people were making about the way that the application worked based on the interface.

When the user added a new item to the list, the app displayed a spinner, and then faded in the new item from the input box to the list. On the development machines, it was moderately fast. But once it was on the production machines, the ajax was extremely fast – it returned in less than a tenth of a second. This meant that the spinner was displayed for such a short period of time that the users simply didn’t see it. It was never visible to the user.

Because of this, the users didn’t seem to be understanding that the item had become permanent – testing showed that they were actually looking for a “save” button after they had added their items to the app. After some discussion, it became apparent that the speed was confusing them. They believed that web applications have to process for a moment and communicate with a server. Because the process was so snappy, they believed that there was no way it could have been saved on the server, and so they were looking for a submit button to save their items. Because of the speed of the interface, they thought that the changes were only happening locally.

The solution? We added a timer to the application so that the spinner would never show less than three tenths of a second. It was long enough that they felt that the new item had been saved.