Predicted Results

A computer feels responsive when results appear as fast or faster than the requests for them can be issued. Therefore, offer Predicted Results as a stand-in for real results and update the predictions as new information becomes available.

An Illusion of Control is created by an interface that performs any operaton in any order. Direct Manipulation enhances the illusion by creating many small operations that can be invoked quickly and effortlessly.

Computer networks extend the range of control but interfere with the illusion by introducing unpredictable delay.

Therefore:

Program networked software so that a prediction of likely or partial results appears immediately with each request. Let the space consumed by the result stand-in for the network request inflight. As true and complete results emerge, update the stand-in space to reflect it.

Choose a visual appearance that suggests the shape of the expected result but does not imply that the action is complete.

Employ a muted color pallet for partial results. Try desaturating color or increasing transparency as a broadly applicable transition effect.

Report network failures or other unexpected results in the space allocated for the prediction. Make it easy to discard the unwanted result or even retry the request.

Do not unduly restrict the user's activity while an action is in progress. Where operations are not naturally separable, settle for eventual consistency between the local and remote states.

Application:

Moden web browsers offer many examples of this pattern including progressive image display and tabbed browsing.

All AJAX requests should follow this pattern. Create space for inflight request even when the requests are intended to be silent overall. Allow these to stack up with multiple requests. For example, small icons might appear in a margin for each request. These could disappear upon successful completion or alert failures and offer diagnosis otherwise.