Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

异步事务的按钮就应该有中间状态

  设计师经常会忽略掉交互上的一些细节,所以设计师设计的按钮大多数就只有一个正常状态。偶尔出现一个「不可用」的状态也是业务上确实有这样的需求时才会想到的。但实际上几乎所有按钮都需要中间状态,因为点击操作多半都是异步行为,没有这个中间转态简直反人类。
  我用安卓手机,经常会在 WIFI 和移动数据上切换。但是这两个按钮都是异步生效的,在我这个比较卡的破手机上点击上去完全没反应,我总是觉得可能是没点到吧?于是又再点了一下,结果刚刚开启的 WIFI 又被我断开了。有时候这样的过程要持续几次才能打开 WIFI(我比较笨拙),所以每次遇到我的内心都是奔溃的。
  开启 WIFI 的这个按钮,由于点击后没有任何变化,让我认为自己没点到。虽然我们会对按钮做一些防止重复点击的处理(点击后设置某个 flag 为 true,每次点击时检测这个 flag 为 true 就什么也不做),但即便如此,只要样式上没有变化依然会被认为没有点到,然后重复多次点击。在这个多次点击的过程中按钮的异步事务可能完成,按钮变为可点状态,然后就被用户认为点击失灵的疯狂点击重试给再次点中了。对于这种在同一个按钮上同时包含「开启」和「关闭」的开关型按钮,结果就是让用户心里多出一万只草泥马在跑。
  如果点击按钮后马上变成选中状态,即便异步事务还没有处理完成,那也比这种点击后没反应的按钮强。当然,如果先把按钮置为选中状态,真正的操作失效后就麻烦了,这时候再把按钮状态置回去就会让用户觉得莫名其妙。用户可能在看到成功后就关掉页面,如果最终是失败的,再回到这个页面就需要做很多额外操作。所以特别是在一些很容易出错的操作上更是不建议这么干。
  最好的办法就是让按钮有一个中间状态,用户点击后按钮变成一个「处理中」的状态,用户就会停留在这个页面上等待完成。然后成功还是失败也可以直接在按钮状态上响应给用户,让用户自己选择下一步操作。可以重试,也可以放弃。
  人人都是产品经理 233333
网名:
34.203.213.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^