While waiting.
WHY IT MATTERS
Perceived speed depends on feedback as much as on actual duration.
WHAT TO SHOW IMMEDIATELY
Acknowledgement that something is happening.
WHAT TO AVOID
A stationary interface, which appears broken A spinner appearing for every brief operation
WHY THAT SECOND POINT
A spinner flashing for a moment is worse than none.
WHAT TO DO ABOUT IT
Delay showing an indicator briefly, so fast operations show nothing.
WHAT SKELETON PLACEHOLDERS PROVIDE
A representation of the coming layout.
WHY THAT HELPS
It sets expectation, and prevents the layout shifting when content arrives.
WHAT TO MATCH
The skeleton to the actual layout.
WHY
A mismatch causes a visible jump.
WHAT TO SHOW FOR LONG OPERATIONS
Genuine progress, where it can be known An indication of what is happening
WHAT TO DO ABOUT OPTIMISTIC UPDATES
Show the result immediately, and revert clearly on failure.
WHAT TO PRESERVE ALWAYS
Scroll position, and entered data.
WHAT TO PREVENT
Content moving after it appears.