How to implement busy spinner with button
What should happen when a user clicks on a button that triggers an action that takes a short amount of time to complete, showing a busy spinner to indicate processing?
[click]↖ => [click] ↖⚙
- Mouse cursor changes to system busy spinner cursor[click] => ⚙
- Busy spinner replaces button entirely[click] => [ ⚙ ]
- Busy spinner replaces button text[click] => [click ⚙]
- Busy spinner appears inside button[click] => [click] ⚙
- Busy spinner appears outside button[click] => [⚙ please wait...]
- Busy spinner replaces button text, accompanied by text[click] => ⚙ please wait...
- Busy spinner replaces button entirely, accompanied by text
Which one of the above solutions is the most user-friendly?