前言
不要让用户等待!越多的等待时间,就越容易让用户流失,因此让应用程序的反馈即时,是很基础重要的原则。
人们通常会认为这是一项技术上的难题,毕竟打造更有效率更快速的程序能够解决一切问题不是吗?并不全然如此,除了伴随着更高的成本代价之外,性能的强化也有上限,举例来说:
- 当用户的设备或网络环境不佳时,即便是最有效率的程序也无法解决这个问题。
- 不可避免的现有的技术架构,也有效能瓶颈,例如:服务之间沟通仍有最低的时间成本。
这时候便可以通过改善用户体验来达成及时反馈的目的,毕竟「等待」是一种可以被操纵的体验,通过精巧的设计可以缓和等待造成的不适,而乐观 UI 就是其中一种方式。
传统 UI 加载流程
在用户触发操作后通常会有一段不可避免的等待时间,受限于例如:网络请求、数据库查询……等背后操作,等待操作核实或新数据的回传成功,用户界面才能展现出行动后的结果。
乐观 UI 加载流程
为了减少等待时间,乐观 UI 在触发的当下就假定操作成功,并且立即更新界面让用户能够立即得到操作的反馈,这种模式能够有效缩短用户等待时间,创造更流畅、令人满意的互动体验。
乐观 UI 的优点
很明显的,乐观 UI 由于预先假定操作成功,因此用户操作并「近乎没有等待时间」是最大的优点。
- 缩短等待时间: 由于乐观 UI 在假定操作成功的同时即时更新界面,用户在触发操作后几乎感受不到等待时间,提升整体用户体验,特别是在网络环境或系统性能不佳的情况下更为显著。
- 流畅互动体验: 用户在操作时能够立即看到结果,使互动更加流畅,有助于提升用户满意度和对系统的信心。
乐观 UI 的缺点
乐观 UI 的缺点在于,当操作失败时,用户界面会与实际状态不符,这时候就需要通过完善的反馈机制(弹跳警告、动画)来让用户知道操作失败的原因,并且让用户可以重新尝试。
- 可能引起混淆: 因为界面瞬间呈现的是预期的结果而非实际完成的结果,可能会让用户产生混淆或误解。
- 需建立完善的反馈机制: 为了避免混淆,需要建立有效的反馈机制,让用户得知操作失败的原因,提供清晰的信息,并引导用户进行必要的修正或再次尝试。
总结
在文章中运用简单的我的最爱状态切换来示范乐观 UI 的应用,不过实际上只要是与创造、更新或删除这类操作都可以斟酌运用乐观 UI 来改善用户体验。
延伸阅读
- Measure performance with the RAIL model - web.dev
- Cheat Code for a Lightning Fast Front End: Building an Optimistic UI - derekndavis
- What is the Optimistic UI? - kiwee