RIAs are an amazing platform upon which to deliver data to users. Data for reading, editing, deleting, organising, digesting and processing. We have the opportunity to present data in a vast array of new, exiting and visually appealing ways, offering faster and more fun methods of interacting with it. However, getting this data can be difficult, cumbersome and have a real impact on the users experience. Often we’re unable to control the technicalities of how we get data grabbing it from remote services, public APIs, XML or wherever. What we can control however, is how we keep our users informed about the data they’re getting and do our best not to let this get in the way of them achieving their goals quickly.
Below are some key questions you should be asking about your data retrieval process with regards to user interaction:
Do I need to stop the user interacting?
Should the user be able to continue working whilst the application retrieves this data? For example, loading your latest company news via an RSS feed into your applications home screen should not prevent them from doing anything they are actually there to do. However, if a user has just selected an entry from a list they wish to make ammendments to its understandable they might not be able to do so until that entity has been fully saturated into the application.
Does the user need to know what is going on?
Is visual feedback required for the user to continue productively using the application? Typically if the data being loaded is as a result of an interaction instigated by the user then probably. If however you’re doing some form of background data loading then it may be sufficient to surpess any distracting feedback unless the user interacts with that part of the application. For example, if a search facility needs to build an index and the user doesn’t try to search, they don’t need to know about it. As soon as they try to use the search facility a user-friendly message to indicate the search is being prepared only then becomes relevant. Note: “Search index compilation in progress” is most probably NOT a user-friendly message, pick a tone and language most appropriate to the intended audience.
Should the user be able to cancel?
Unfortunately, some operations have to take a long time. Obviously any efforts made to reduce the time of intensive processes are well placed but, if after you’ve squeezed every possible millisecond of performance out of a hefty process it still takes a long time then the least you can do is offer the user a means of cancelling that process.